http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.02.tar.gz
authorZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:42:53 +0000 (00:42 -0500)
committerZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 8 Feb 2013 17:53:49 +0000 (12:53 -0500)
-rw-r--r-- 1 zblaxell zblaxell 2201442 Mar 20  2002 xscreensaver-4.02.tar.gz
b32cf3ed37680669a4a7ea2b945fadb5841fc6b3  xscreensaver-4.02.tar.gz

79 files changed:
README
config.h.in
configure
configure.in
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
driver/demo-Gtk-conf.c
driver/demo-Gtk.c
driver/lock.c
driver/passwd-pam.c
driver/passwd.c
driver/prefs.c
driver/remote.c
driver/splash.c
driver/subprocs.c
driver/test-passwd.c
driver/test-xdpms.c
driver/timers.c
driver/windows.c
driver/xscreensaver-command.man
driver/xscreensaver-demo.man
driver/xscreensaver-getimage-file
driver/xscreensaver-getimage-file.man
driver/xscreensaver-getimage-video.man
driver/xscreensaver-getimage.c
driver/xscreensaver-getimage.man
driver/xscreensaver.c
driver/xscreensaver.h
driver/xscreensaver.man
driver/xset.c
hacks/Makefile.in
hacks/bsod.c
hacks/bsod.man
hacks/bumps.c
hacks/bumps.h
hacks/compile_axp.com
hacks/compile_decc.com
hacks/config/README
hacks/config/bsod.xml
hacks/config/cubenetic.xml [new file with mode: 0644]
hacks/config/glplanet.xml
hacks/config/pipes.xml
hacks/fluidballs.c [new file with mode: 0644]
hacks/forest.c
hacks/glx/Makefile.in
hacks/glx/boxed.c
hacks/glx/cage.c
hacks/glx/circuit.c
hacks/glx/cubenetic.c [new file with mode: 0644]
hacks/glx/dangerball.c
hacks/glx/extrusion.c
hacks/glx/flipscreen3d.c
hacks/glx/fps.c
hacks/glx/glplanet.c
hacks/glx/glsnake.c
hacks/glx/menger.c
hacks/glx/moebius.c
hacks/glx/molecule.c
hacks/glx/pipes.c
hacks/glx/pulsar.c
hacks/glx/sphere.c
hacks/glx/stairs.c
hacks/images/earth.xbm [deleted file]
hacks/images/earth.xpm [new file with mode: 0644]
hacks/images/macbomb.xbm [new file with mode: 0644]
hacks/screenhack.c
hacks/screenhack.h
hacks/webcollage-helper.c
setup.com
utils/colors.c
utils/compile_axp.com
utils/compile_decc.com
utils/images/logo-180.xpm
utils/images/logo-50.xpm
utils/logo.c
utils/version.h
xscreensaver.lsm
xscreensaver.spec

diff --git a/README b/README
index bd6de77d3f15d8677bfc83973af0cc41401c140e..f6063fde0257c3ca50d9e5c6c178c7e75d73b895 100644 (file)
--- a/README
+++ b/README
@@ -57,17 +57,32 @@ there's no need to recompile or reinstall anything.
                               ============
 
 Along with the xscreensaver daemon itself, this package also includes
-numerous graphics hacks for use as screensavers.  There is nothing magic
-about these: they are just programs that draw on the root window.
-
-More than 140 such programs are included.  For details, see the xscreensaver
-web page, or the enclosed manual pages.
+numerous graphics hacks for use as screensavers.  There is nothing
+magic about these: they are just programs that draw on the root window.
+More than 140 such programs are included.  For details, see the
+xscreensaver web page, or the enclosed manual pages.
 
 The latest version of xscreensaver is always available on the web at
 http://www.jwz.org/xscreensaver/.
 
+Looking for tips on writing your own screensavers?  There is an entry in
+the XScreenSaver FAQ about that: http://www.jwz.org/xscreensaver/faq.html
+
                               ============
 
+Changes since 4.01:   * Plugged a few minor leaks in `xscreensaver' and
+                        `xscreensaver-demo'.
+                      * New hacks, `cubenetic' and `fluidballs'.
+                      * Sped up `pipes'.
+                      * Fixed sphere projection error in `glplanet'; installed
+                        a better image of earth.
+                      * Added Win2K and MacOS 1 crashes to `bsod'.
+                      * Put back previous (better) version of `forest' that
+                        was accidentially downgraded in the last release.
+                      * New version of `bumps'.
+                      * Made FPS computation in GL hacks more efficient: it
+                        will influence the results less, thus resulting in
+                        higher (but more accurate) reported frame rates.
 Changes since 4.00:   * New hacks: `twang', `glsnake', `boxed', `sballs',
                         and `glforestfire'.
                       * New hacks `apollonian', `euler2d', `juggle',
index bb1d104058a93eef4f9890bdb2703bf767aeca81..0a16192a702e7f20b177757d94c73318ff1595e1 100644 (file)
 /* Define this if you have the setrlimit function. */
 #undef HAVE_SETRLIMIT
 
+/* Define if you have the sbrk function.  */
+#define HAVE_SBRK 1
+
 /* Define if you have the <unistd.h> header file.  */
 #undef HAVE_UNISTD_H
 
index 14fcbb0430ba27d5ebb2f799c738da193dd0ec55..af5ae0269ad3370f544e759c5440da345d81f879 100755 (executable)
--- a/configure
+++ b/configure
@@ -16,8 +16,7 @@ ac_help="$ac_help
 Installation options:
 
   --with-hackdir=DIR      Where to install the hundreds of demo executables.
-                          Default: \`PREFIX/lib/xscreensaver/'
-"
+                          Default: \`PREFIX/lib/xscreensaver/'"
 ac_help="$ac_help
 "
 ac_help="$ac_help
@@ -829,7 +828,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:844: checking host system type" >&5
+echo "configure:843: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -852,7 +851,7 @@ echo "$ac_t""$host" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:867: checking for $ac_word" >&5
+echo "configure:866: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -882,7 +881,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:897: checking for $ac_word" >&5
+echo "configure:896: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -933,7 +932,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:948: checking for $ac_word" >&5
+echo "configure:947: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -965,7 +964,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:980: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:979: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -976,12 +975,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 991 "configure"
+#line 990 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1007,12 +1006,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1022: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1021: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1027: checking whether we are using GNU C" >&5
+echo "configure:1026: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1021,7 +1020,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1036: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1035: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1040,7 +1039,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1055: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1054: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1074,7 +1073,7 @@ fi
 
   if test -z "$GCC"; then
     echo $ac_n "checking how to request ANSI compilation""... $ac_c" 1>&6
-echo "configure:1089: checking how to request ANSI compilation" >&5
+echo "configure:1088: checking how to request ANSI compilation" >&5
     case "$host" in
       *-hpux* )
         echo "$ac_t""HPUX: adding -Ae" 1>&6
@@ -1097,16 +1096,16 @@ echo "configure:1089: checking how to request ANSI compilation" >&5
   fi
 
   echo $ac_n "checking whether the compiler works on ANSI C""... $ac_c" 1>&6
-echo "configure:1112: checking whether the compiler works on ANSI C" >&5
+echo "configure:1111: checking whether the compiler works on ANSI C" >&5
   if test "$cross_compiling" = yes; then
   { echo "configure: error: Couldn't build even a trivial ANSI C program: check CC." 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 1117 "configure"
+#line 1116 "configure"
 #include "confdefs.h"
  main(int ac, char **av) { return 0; } 
 EOF
-if { (eval echo configure:1121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   echo "$ac_t""yes" 1>&6
 else
@@ -1141,7 +1140,7 @@ fi
 if test -n "$GCC"; then
    if test -n "$GCC"; then
    echo $ac_n "checking whether gcc accepts -std""... $ac_c" 1>&6
-echo "configure:1156: checking whether gcc accepts -std" >&5
+echo "configure:1155: checking whether gcc accepts -std" >&5
 if eval "test \"`echo '$''{'ac_cv_gcc_accepts_std'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1185,7 +1184,7 @@ echo "$ac_t""$ac_cv_gcc_accepts_std" 1>&6
   fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1200: checking how to run the C preprocessor" >&5
+echo "configure:1199: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1200,13 +1199,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1215 "configure"
+#line 1214 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1217,13 +1216,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1232 "configure"
+#line 1231 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1238: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1234,13 +1233,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1249 "configure"
+#line 1248 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1265,12 +1264,12 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1280: checking for working const" >&5
+echo "configure:1279: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1285 "configure"
+#line 1284 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1319,7 +1318,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:1334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1333: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -1340,21 +1339,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1355: checking for inline" >&5
+echo "configure:1354: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1362 "configure"
+#line 1361 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:1369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -1379,9 +1378,104 @@ EOF
  ;;
 esac
 
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:1394: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1399 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:1410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_cygwin=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:1427: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1432 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:1439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_mingw32=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:1458: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+  ac_cv_exeext=.exe
+else
+  rm -f conftest*
+  echo 'int main () { return 0; }' > conftest.$ac_ext
+  ac_cv_exeext=
+  if { (eval echo configure:1468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+    for file in conftest.*; do
+      case $file in
+      *.c | *.o | *.obj) ;;
+      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+      esac
+    done
+  else
+    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+  fi
+  rm -f conftest*
+  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
 ac_bc_result=`echo 6+9 | bc 2>/dev/null`
   echo $ac_n "checking for bc""... $ac_c" 1>&6
-echo "configure:1396: checking for bc" >&5
+echo "configure:1490: checking for bc" >&5
   if test "$ac_bc_result" = "15" ; then
     echo "$ac_t""yes" 1>&6
   else
@@ -1406,7 +1500,7 @@ echo "configure:1396: checking for bc" >&5
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1421: checking for a BSD compatible install" >&5
+echo "configure:1515: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1459,7 +1553,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 echo $ac_n "checking whether \"\${INSTALL} -d\" creates intermediate directories""... $ac_c" 1>&6
-echo "configure:1474: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
+echo "configure:1568: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
 if eval "test \"`echo '$''{'ac_cv_install_d_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1481,7 +1575,7 @@ echo "$ac_t""$ac_cv_install_d_creates_dirs" 1>&6
 
   if test "$ac_cv_install_d_creates_dirs" = no ; then
     echo $ac_n "checking whether \"mkdir -p\" creates intermediate directories""... $ac_c" 1>&6
-echo "configure:1496: checking whether \"mkdir -p\" creates intermediate directories" >&5
+echo "configure:1590: checking whether \"mkdir -p\" creates intermediate directories" >&5
 if eval "test \"`echo '$''{'ac_cv_mkdir_p_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1512,7 +1606,7 @@ echo "$ac_t""$ac_cv_mkdir_p_creates_dirs" 1>&6
   fi
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1527: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1621: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1548,12 +1642,12 @@ INSTALL_SCRIPT='${INSTALL}'
 
 # random libc stuff
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1563: checking for ANSI C header files" >&5
+echo "configure:1657: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1568 "configure"
+#line 1662 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1561,7 +1655,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1576: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1670: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1578,7 +1672,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1593 "configure"
+#line 1687 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1596,7 +1690,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1611 "configure"
+#line 1705 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1617,7 +1711,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1632 "configure"
+#line 1726 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1628,7 +1722,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:1643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1655,17 +1749,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1670: checking for $ac_hdr" >&5
+echo "configure:1764: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1675 "configure"
+#line 1769 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1774: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1692,12 +1786,12 @@ fi
 done
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:1707: checking for mode_t" >&5
+echo "configure:1801: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1712 "configure"
+#line 1806 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1725,12 +1819,12 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:1740: checking for pid_t" >&5
+echo "configure:1834: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1745 "configure"
+#line 1839 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1758,12 +1852,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1773: checking for size_t" >&5
+echo "configure:1867: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1778 "configure"
+#line 1872 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1791,12 +1885,12 @@ EOF
 fi
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1806: checking return type of signal handlers" >&5
+echo "configure:1900: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1811 "configure"
+#line 1905 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -1813,7 +1907,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:1828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -1832,12 +1926,12 @@ EOF
 
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1847: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:1941: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1852 "configure"
+#line 1946 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -1846,7 +1940,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:1861: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1955: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -1867,12 +1961,12 @@ EOF
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:1882: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:1976: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1887 "configure"
+#line 1981 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -1888,7 +1982,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:1903: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1997: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -1913,12 +2007,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1928: checking for $ac_hdr that defines DIR" >&5
+echo "configure:2022: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1933 "configure"
+#line 2027 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -1926,7 +2020,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:1941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2035: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -1951,7 +2045,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1966: checking for opendir in -ldir" >&5
+echo "configure:2060: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1959,7 +2053,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1974 "configure"
+#line 2068 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1970,7 +2064,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:1985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1992,7 +2086,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:2007: checking for opendir in -lx" >&5
+echo "configure:2101: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2000,7 +2094,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2015 "configure"
+#line 2109 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2011,7 +2105,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:2026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2034,12 +2128,12 @@ fi
 fi
 
 echo $ac_n "checking how to call gettimeofday""... $ac_c" 1>&6
-echo "configure:2049: checking how to call gettimeofday" >&5
+echo "configure:2143: checking how to call gettimeofday" >&5
   if eval "test \"`echo '$''{'ac_cv_gettimeofday_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2054 "configure"
+#line 2148 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                     #include <sys/time.h>
@@ -2048,7 +2142,7 @@ struct timeval tv; struct timezone tzp;
                     gettimeofday(&tv, &tzp);
 ; return 0; }
 EOF
-if { (eval echo configure:2063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_gettimeofday_args=2
 else
@@ -2056,7 +2150,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 2071 "configure"
+#line 2165 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <sys/time.h>
@@ -2064,7 +2158,7 @@ int main() {
 struct timeval tv; gettimeofday(&tv);
 ; return 0; }
 EOF
-if { (eval echo configure:2079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_gettimeofday_args=1
 else
@@ -2100,15 +2194,15 @@ EOF
     echo "$ac_t""unknown" 1>&6
   fi
 
-for ac_func in select fcntl uname nice setpriority getcwd getwd putenv
+for ac_func in select fcntl uname nice setpriority getcwd getwd putenv sbrk
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2118: checking for $ac_func" >&5
+echo "configure:2212: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2123 "configure"
+#line 2217 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2131,7 +2225,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2159,12 +2253,12 @@ done
 for ac_func in sigaction syslog realpath setrlimit
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2174: checking for $ac_func" >&5
+echo "configure:2268: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2179 "configure"
+#line 2273 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2187,7 +2281,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2212,12 +2306,12 @@ fi
 done
 
 echo $ac_n "checking for struct icmp""... $ac_c" 1>&6
-echo "configure:2227: checking for struct icmp" >&5
+echo "configure:2321: checking for struct icmp" >&5
 if eval "test \"`echo '$''{'ac_cv_have_icmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2232 "configure"
+#line 2326 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
@@ -2257,7 +2351,7 @@ struct icmp i;
                    
 ; return 0; }
 EOF
-if { (eval echo configure:2272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_icmp=yes
 else
@@ -2277,12 +2371,12 @@ EOF
 
  fi
 echo $ac_n "checking for struct icmphdr""... $ac_c" 1>&6
-echo "configure:2292: checking for struct icmphdr" >&5
+echo "configure:2386: checking for struct icmphdr" >&5
 if eval "test \"`echo '$''{'ac_cv_have_icmphdr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2297 "configure"
+#line 2391 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
@@ -2317,7 +2411,7 @@ struct icmphdr i;
                    ip.ip_hl = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_icmphdr=yes
 else
@@ -2340,17 +2434,17 @@ for ac_hdr in crypt.h sys/select.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2355: checking for $ac_hdr" >&5
+echo "configure:2449: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2360 "configure"
+#line 2454 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2365: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2459: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2381,7 +2475,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2396: checking for $ac_word" >&5
+echo "configure:2490: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2420,7 +2514,7 @@ done
     PERL_VERSION=0
   else
     echo $ac_n "checking perl version""... $ac_c" 1>&6
-echo "configure:2435: checking perl version" >&5
+echo "configure:2529: checking perl version" >&5
 if eval "test \"`echo '$''{'ac_cv_perl_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2442,7 +2536,7 @@ fi
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:2457: checking for X" >&5
+echo "configure:2551: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -2504,12 +2598,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 2519 "configure"
+#line 2613 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2524: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2618: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2578,14 +2672,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2593 "configure"
+#line 2687 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:2600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -2691,17 +2785,17 @@ else
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:2706: checking whether -R must be followed by a space" >&5
+echo "configure:2800: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 2709 "configure"
+#line 2803 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -2717,14 +2811,14 @@ rm -f conftest*
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 2732 "configure"
+#line 2826 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -2756,7 +2850,7 @@ rm -f conftest*
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:2771: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:2865: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2764,7 +2858,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2779 "configure"
+#line 2873 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2775,7 +2869,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2797,7 +2891,7 @@ fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:2812: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:2906: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2805,7 +2899,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2820 "configure"
+#line 2914 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2816,7 +2910,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2845,12 +2939,12 @@ fi
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:2860: checking for gethostbyname" >&5
+echo "configure:2954: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2865 "configure"
+#line 2959 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -2873,7 +2967,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -2894,7 +2988,7 @@ fi
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:2909: checking for gethostbyname in -lnsl" >&5
+echo "configure:3003: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2902,7 +2996,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2917 "configure"
+#line 3011 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2913,7 +3007,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:2928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2943,12 +3037,12 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:2958: checking for connect" >&5
+echo "configure:3052: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2963 "configure"
+#line 3057 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -2971,7 +3065,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -2992,7 +3086,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:3007: checking for connect in -lsocket" >&5
+echo "configure:3101: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3000,7 +3094,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3015 "configure"
+#line 3109 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3011,7 +3105,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:3026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3035,12 +3129,12 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:3050: checking for remove" >&5
+echo "configure:3144: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3055 "configure"
+#line 3149 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -3063,7 +3157,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -3084,7 +3178,7 @@ fi
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:3099: checking for remove in -lposix" >&5
+echo "configure:3193: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3092,7 +3186,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3107 "configure"
+#line 3201 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3103,7 +3197,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:3118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3127,12 +3221,12 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:3142: checking for shmat" >&5
+echo "configure:3236: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3147 "configure"
+#line 3241 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -3155,7 +3249,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -3176,7 +3270,7 @@ fi
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:3191: checking for shmat in -lipc" >&5
+echo "configure:3285: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3184,7 +3278,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3199 "configure"
+#line 3293 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3195,7 +3289,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:3210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3228,7 +3322,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:3243: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:3337: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3236,7 +3330,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3251 "configure"
+#line 3345 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3247,7 +3341,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:3262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3278,7 +3372,7 @@ fi
 
 
     echo $ac_n "checking for X app-defaults directory""... $ac_c" 1>&6
-echo "configure:3293: checking for X app-defaults directory" >&5
+echo "configure:3387: checking for X app-defaults directory" >&5
 if eval "test \"`echo '$''{'ac_cv_x_app_defaults'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3485,7 +3579,7 @@ case "$host" in
 
         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
         echo $ac_n "checking for regcmp in -lgen""... $ac_c" 1>&6
-echo "configure:3500: checking for regcmp in -lgen" >&5
+echo "configure:3594: checking for regcmp in -lgen" >&5
 ac_lib_var=`echo gen'_'regcmp | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3493,7 +3587,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3508 "configure"
+#line 3602 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3504,7 +3598,7 @@ int main() {
 regcmp()
 ; return 0; }
 EOF
-if { (eval echo configure:3519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3528,7 +3622,7 @@ fi
     ;;
   esac
 echo $ac_n "checking for XPointer""... $ac_c" 1>&6
-echo "configure:3543: checking for XPointer" >&5
+echo "configure:3637: checking for XPointer" >&5
 if eval "test \"`echo '$''{'ac_cv_xpointer'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3539,14 +3633,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 3554 "configure"
+#line 3648 "configure"
 #include "confdefs.h"
 #include <X11/Xlib.h>
 int main() {
 XPointer foo = (XPointer) 0;
 ; return 0; }
 EOF
-if { (eval echo configure:3561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_xpointer=yes
 else
@@ -3584,17 +3678,17 @@ have_xmu=no
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/Xmu/Error.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xmu/Error.h""... $ac_c" 1>&6
-echo "configure:3599: checking for X11/Xmu/Error.h" >&5
+echo "configure:3693: checking for X11/Xmu/Error.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3604 "configure"
+#line 3698 "configure"
 #include "confdefs.h"
 #include <X11/Xmu/Error.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3703: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3643,7 +3737,7 @@ if test "$have_xmu" = yes ; then
   case "$host" in
     *-sunos4*)
     echo $ac_n "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug""... $ac_c" 1>&6
-echo "configure:3658: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
+echo "configure:3752: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
 if eval "test \"`echo '$''{'ac_cv_sunos_xmu_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3656,14 +3750,14 @@ else
                     # with X libraries because we know it's SunOS.
                     LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
                     cat > conftest.$ac_ext <<EOF
-#line 3671 "configure"
+#line 3765 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_sunos_xmu_bug=no
 else
@@ -3679,21 +3773,21 @@ fi
 echo "$ac_t""$ac_cv_sunos_xmu_bug" 1>&6
     if test "$ac_cv_sunos_xmu_bug" = yes ; then
       echo $ac_n "checking whether the compiler understands -static""... $ac_c" 1>&6
-echo "configure:3694: checking whether the compiler understands -static" >&5
+echo "configure:3788: checking whether the compiler understands -static" >&5
 if eval "test \"`echo '$''{'ac_cv_ld_static'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LDFLAGS="$LDFLAGS"
                       LDFLAGS="$LDFLAGS -static"
                       cat > conftest.$ac_ext <<EOF
-#line 3701 "configure"
+#line 3795 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_ld_static=yes
 else
@@ -3832,7 +3926,7 @@ fi
 
     /*)
      echo $ac_n "checking for SGI SCREEN_SAVER headers""... $ac_c" 1>&6
-echo "configure:3847: checking for SGI SCREEN_SAVER headers" >&5
+echo "configure:3941: checking for SGI SCREEN_SAVER headers" >&5
      d=$with_sgi/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -3842,7 +3936,7 @@ echo "configure:3847: checking for SGI SCREEN_SAVER headers" >&5
      fi
 
      echo $ac_n "checking for SGI SCREEN_SAVER libs""... $ac_c" 1>&6
-echo "configure:3857: checking for SGI SCREEN_SAVER libs" >&5
+echo "configure:3951: checking for SGI SCREEN_SAVER libs" >&5
      d=$with_sgi/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -3875,17 +3969,17 @@ if test "$with_sgi" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XScreenSaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XScreenSaver.h""... $ac_c" 1>&6
-echo "configure:3890: checking for X11/extensions/XScreenSaver.h" >&5
+echo "configure:3984: checking for X11/extensions/XScreenSaver.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3895 "configure"
+#line 3989 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XScreenSaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3994: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3942,7 +4036,7 @@ fi
 
     /*)
      echo $ac_n "checking for MIT-SCREEN-SAVER headers""... $ac_c" 1>&6
-echo "configure:3957: checking for MIT-SCREEN-SAVER headers" >&5
+echo "configure:4051: checking for MIT-SCREEN-SAVER headers" >&5
      d=$with_mit/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -3952,7 +4046,7 @@ echo "configure:3957: checking for MIT-SCREEN-SAVER headers" >&5
      fi
 
      echo $ac_n "checking for MIT-SCREEN-SAVER libs""... $ac_c" 1>&6
-echo "configure:3967: checking for MIT-SCREEN-SAVER libs" >&5
+echo "configure:4061: checking for MIT-SCREEN-SAVER libs" >&5
      d=$with_mit/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -3985,17 +4079,17 @@ if test "$with_mit" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/scrnsaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/scrnsaver.h""... $ac_c" 1>&6
-echo "configure:4000: checking for X11/extensions/scrnsaver.h" >&5
+echo "configure:4094: checking for X11/extensions/scrnsaver.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4005 "configure"
+#line 4099 "configure"
 #include "confdefs.h"
 #include <X11/extensions/scrnsaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4010: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4040,7 +4134,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXext""... $ac_c" 1>&6
-echo "configure:4055: checking for XScreenSaverRegister in -lXext" >&5
+echo "configure:4149: checking for XScreenSaverRegister in -lXext" >&5
 ac_lib_var=`echo Xext'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4048,7 +4142,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4063 "configure"
+#line 4157 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4059,7 +4153,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:4074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4106,7 +4200,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXExExt""... $ac_c" 1>&6
-echo "configure:4121: checking for XScreenSaverRegister in -lXExExt" >&5
+echo "configure:4215: checking for XScreenSaverRegister in -lXExExt" >&5
 ac_lib_var=`echo XExExt'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4114,7 +4208,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXExExt -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4129 "configure"
+#line 4223 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4125,7 +4219,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:4140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4175,7 +4269,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXss""... $ac_c" 1>&6
-echo "configure:4190: checking for XScreenSaverRegister in -lXss" >&5
+echo "configure:4284: checking for XScreenSaverRegister in -lXss" >&5
 ac_lib_var=`echo Xss'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4183,7 +4277,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXss -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4198 "configure"
+#line 4292 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4194,7 +4288,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:4209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4260,7 +4354,7 @@ fi
 
     /*)
      echo $ac_n "checking for XIDLE headers""... $ac_c" 1>&6
-echo "configure:4275: checking for XIDLE headers" >&5
+echo "configure:4369: checking for XIDLE headers" >&5
      d=$with_xidle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4270,7 +4364,7 @@ echo "configure:4275: checking for XIDLE headers" >&5
      fi
 
      echo $ac_n "checking for XIDLE libs""... $ac_c" 1>&6
-echo "configure:4285: checking for XIDLE libs" >&5
+echo "configure:4379: checking for XIDLE libs" >&5
      d=$with_xidle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4303,17 +4397,17 @@ if test "$with_xidle" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xidle.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xidle.h""... $ac_c" 1>&6
-echo "configure:4318: checking for X11/extensions/xidle.h" >&5
+echo "configure:4412: checking for X11/extensions/xidle.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4323 "configure"
+#line 4417 "configure"
 #include "confdefs.h"
 #include <X11/extensions/xidle.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4328: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4422: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4369,7 +4463,7 @@ fi
 
     /*)
      echo $ac_n "checking for SGI-VIDEO-CONTROL headers""... $ac_c" 1>&6
-echo "configure:4384: checking for SGI-VIDEO-CONTROL headers" >&5
+echo "configure:4478: checking for SGI-VIDEO-CONTROL headers" >&5
      d=$with_sgivc/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4379,7 +4473,7 @@ echo "configure:4384: checking for SGI-VIDEO-CONTROL headers" >&5
      fi
 
      echo $ac_n "checking for SGI-VIDEO-CONTROL libs""... $ac_c" 1>&6
-echo "configure:4394: checking for SGI-VIDEO-CONTROL libs" >&5
+echo "configure:4488: checking for SGI-VIDEO-CONTROL libs" >&5
      d=$with_sgivc/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4414,17 +4508,17 @@ if test "$with_sgivc" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XSGIvc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XSGIvc.h""... $ac_c" 1>&6
-echo "configure:4429: checking for X11/extensions/XSGIvc.h" >&5
+echo "configure:4523: checking for X11/extensions/XSGIvc.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4434 "configure"
+#line 4528 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XSGIvc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4533: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4468,7 +4562,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XSGIvcQueryGammaMap in -lXsgivc""... $ac_c" 1>&6
-echo "configure:4483: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
+echo "configure:4577: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
 ac_lib_var=`echo Xsgivc'_'XSGIvcQueryGammaMap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4476,7 +4570,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXsgivc -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4491 "configure"
+#line 4585 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4487,7 +4581,7 @@ int main() {
 XSGIvcQueryGammaMap()
 ; return 0; }
 EOF
-if { (eval echo configure:4502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4552,7 +4646,7 @@ fi
 
     /*)
      echo $ac_n "checking for DPMS headers""... $ac_c" 1>&6
-echo "configure:4567: checking for DPMS headers" >&5
+echo "configure:4661: checking for DPMS headers" >&5
      d=$with_dpms/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4562,7 +4656,7 @@ echo "configure:4567: checking for DPMS headers" >&5
      fi
 
      echo $ac_n "checking for DPMS libs""... $ac_c" 1>&6
-echo "configure:4577: checking for DPMS libs" >&5
+echo "configure:4671: checking for DPMS libs" >&5
      d=$with_dpms/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4597,17 +4691,17 @@ if test "$with_dpms" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/dpms.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/dpms.h""... $ac_c" 1>&6
-echo "configure:4612: checking for X11/extensions/dpms.h" >&5
+echo "configure:4706: checking for X11/extensions/dpms.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4617 "configure"
+#line 4711 "configure"
 #include "confdefs.h"
 #include <X11/extensions/dpms.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4622: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4653,7 +4747,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for DPMSInfo in -lXext""... $ac_c" 1>&6
-echo "configure:4668: checking for DPMSInfo in -lXext" >&5
+echo "configure:4762: checking for DPMSInfo in -lXext" >&5
 ac_lib_var=`echo Xext'_'DPMSInfo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4661,7 +4755,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXext -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4676 "configure"
+#line 4770 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4672,7 +4766,7 @@ int main() {
 DPMSInfo()
 ; return 0; }
 EOF
-if { (eval echo configure:4687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4718,7 +4812,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for DPMSInfo in -lXdpms""... $ac_c" 1>&6
-echo "configure:4733: checking for DPMSInfo in -lXdpms" >&5
+echo "configure:4827: checking for DPMSInfo in -lXdpms" >&5
 ac_lib_var=`echo Xdpms'_'DPMSInfo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4726,7 +4820,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXdpms -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4741 "configure"
+#line 4835 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4737,7 +4831,7 @@ int main() {
 DPMSInfo()
 ; return 0; }
 EOF
-if { (eval echo configure:4752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4804,7 +4898,7 @@ fi
 
     /*)
      echo $ac_n "checking for XINERAMA headers""... $ac_c" 1>&6
-echo "configure:4819: checking for XINERAMA headers" >&5
+echo "configure:4913: checking for XINERAMA headers" >&5
      d=$with_xinerama/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4814,7 +4908,7 @@ echo "configure:4819: checking for XINERAMA headers" >&5
      fi
 
      echo $ac_n "checking for XINERAMA libs""... $ac_c" 1>&6
-echo "configure:4829: checking for XINERAMA libs" >&5
+echo "configure:4923: checking for XINERAMA libs" >&5
      d=$with_xinerama/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4849,17 +4943,17 @@ if test "$with_xinerama" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/Xinerama.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/Xinerama.h""... $ac_c" 1>&6
-echo "configure:4864: checking for X11/extensions/Xinerama.h" >&5
+echo "configure:4958: checking for X11/extensions/Xinerama.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4869 "configure"
+#line 4963 "configure"
 #include "confdefs.h"
 #include <X11/extensions/Xinerama.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4905,7 +4999,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XineramaQueryExtension in -lXext""... $ac_c" 1>&6
-echo "configure:4920: checking for XineramaQueryExtension in -lXext" >&5
+echo "configure:5014: checking for XineramaQueryExtension in -lXext" >&5
 ac_lib_var=`echo Xext'_'XineramaQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4913,7 +5007,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXext -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4928 "configure"
+#line 5022 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4924,7 +5018,7 @@ int main() {
 XineramaQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:4939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4970,7 +5064,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XineramaQueryExtension in -lXinerama""... $ac_c" 1>&6
-echo "configure:4985: checking for XineramaQueryExtension in -lXinerama" >&5
+echo "configure:5079: checking for XineramaQueryExtension in -lXinerama" >&5
 ac_lib_var=`echo Xinerama'_'XineramaQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4978,7 +5072,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXinerama -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4993 "configure"
+#line 5087 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4989,7 +5083,7 @@ int main() {
 XineramaQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:5004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5055,7 +5149,7 @@ fi
 
     /*)
      echo $ac_n "checking for xf86vmode headers""... $ac_c" 1>&6
-echo "configure:5070: checking for xf86vmode headers" >&5
+echo "configure:5164: checking for xf86vmode headers" >&5
      d=$with_xf86vmode/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5065,7 +5159,7 @@ echo "configure:5070: checking for xf86vmode headers" >&5
      fi
 
      echo $ac_n "checking for xf86vmode libs""... $ac_c" 1>&6
-echo "configure:5080: checking for xf86vmode libs" >&5
+echo "configure:5174: checking for xf86vmode libs" >&5
      d=$with_xf86vmode/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5100,17 +5194,17 @@ if test "$with_xf86vmode" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xf86vmode.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xf86vmode.h""... $ac_c" 1>&6
-echo "configure:5115: checking for X11/extensions/xf86vmode.h" >&5
+echo "configure:5209: checking for X11/extensions/xf86vmode.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5120 "configure"
+#line 5214 "configure"
 #include "confdefs.h"
 #include <X11/extensions/xf86vmode.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5154,7 +5248,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XF86VidModeGetViewPort in -lXxf86vm""... $ac_c" 1>&6
-echo "configure:5169: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
+echo "configure:5263: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
 ac_lib_var=`echo Xxf86vm'_'XF86VidModeGetViewPort | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5162,7 +5256,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXxf86vm -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5177 "configure"
+#line 5271 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5173,7 +5267,7 @@ int main() {
 XF86VidModeGetViewPort()
 ; return 0; }
 EOF
-if { (eval echo configure:5188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5239,7 +5333,7 @@ fi
 
     /*)
      echo $ac_n "checking for xf86gamma headers""... $ac_c" 1>&6
-echo "configure:5254: checking for xf86gamma headers" >&5
+echo "configure:5348: checking for xf86gamma headers" >&5
      d=$with_xf86gamma/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5249,7 +5343,7 @@ echo "configure:5254: checking for xf86gamma headers" >&5
      fi
 
      echo $ac_n "checking for xf86gamma libs""... $ac_c" 1>&6
-echo "configure:5264: checking for xf86gamma libs" >&5
+echo "configure:5358: checking for xf86gamma libs" >&5
      d=$with_xf86gamma/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5287,17 +5381,17 @@ if test "$with_xf86gamma" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xf86vmode.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xf86vmode.h""... $ac_c" 1>&6
-echo "configure:5302: checking for X11/extensions/xf86vmode.h" >&5
+echo "configure:5396: checking for X11/extensions/xf86vmode.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5307 "configure"
+#line 5401 "configure"
 #include "confdefs.h"
 #include <X11/extensions/xf86vmode.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5312: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5406: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5342,7 +5436,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XF86VidModeSetGamma in -lXxf86vm""... $ac_c" 1>&6
-echo "configure:5357: checking for XF86VidModeSetGamma in -lXxf86vm" >&5
+echo "configure:5451: checking for XF86VidModeSetGamma in -lXxf86vm" >&5
 ac_lib_var=`echo Xxf86vm'_'XF86VidModeSetGamma | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5350,7 +5444,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXxf86vm -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5365 "configure"
+#line 5459 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5361,7 +5455,7 @@ int main() {
 XF86VidModeSetGamma()
 ; return 0; }
 EOF
-if { (eval echo configure:5376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5409,7 +5503,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XF86VidModeSetGammaRamp in -lXxf86vm""... $ac_c" 1>&6
-echo "configure:5424: checking for XF86VidModeSetGammaRamp in -lXxf86vm" >&5
+echo "configure:5518: checking for XF86VidModeSetGammaRamp in -lXxf86vm" >&5
 ac_lib_var=`echo Xxf86vm'_'XF86VidModeSetGammaRamp | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5417,7 +5511,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXxf86vm -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5432 "configure"
+#line 5526 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5428,7 +5522,7 @@ int main() {
 XF86VidModeSetGammaRamp()
 ; return 0; }
 EOF
-if { (eval echo configure:5443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5494,7 +5588,7 @@ fi
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5509 "configure"
+#line 5603 "configure"
 #include "confdefs.h"
 #include <X11/XHPlib.h>
 EOF
@@ -5532,7 +5626,7 @@ fi
 if test "$with_proc_interrupts" = yes; then
 
    echo $ac_n "checking whether /proc/interrupts contains keyboard data""... $ac_c" 1>&6
-echo "configure:5547: checking whether /proc/interrupts contains keyboard data" >&5
+echo "configure:5641: checking whether /proc/interrupts contains keyboard data" >&5
 if eval "test \"`echo '$''{'ac_cv_have_proc_interrupts'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5665,7 +5759,7 @@ fi
 
     /*)
      echo $ac_n "checking for PAM headers""... $ac_c" 1>&6
-echo "configure:5680: checking for PAM headers" >&5
+echo "configure:5774: checking for PAM headers" >&5
      d=$with_pam/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5675,7 +5769,7 @@ echo "configure:5680: checking for PAM headers" >&5
      fi
 
      echo $ac_n "checking for PAM libs""... $ac_c" 1>&6
-echo "configure:5690: checking for PAM libs" >&5
+echo "configure:5784: checking for PAM libs" >&5
      d=$with_pam/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5701,7 +5795,7 @@ echo "configure:5690: checking for PAM libs" >&5
 
 if test "$enable_locking" = yes -a "$with_pam" = yes; then
   echo $ac_n "checking for PAM""... $ac_c" 1>&6
-echo "configure:5716: checking for PAM" >&5
+echo "configure:5810: checking for PAM" >&5
 if eval "test \"`echo '$''{'ac_cv_pam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5712,14 +5806,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5727 "configure"
+#line 5821 "configure"
 #include "confdefs.h"
 #include <security/pam_appl.h>
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_pam=yes
 else
@@ -5744,7 +5838,7 @@ EOF
     # libpam typically requires dlopen and dlsym.  On FreeBSD,
     # those are in libc.  On Linux and Solaris, they're in libdl.
     echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:5759: checking for dlopen in -ldl" >&5
+echo "configure:5853: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5752,7 +5846,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5767 "configure"
+#line 5861 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5763,7 +5857,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:5778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5785,12 +5879,12 @@ fi
 
 
     echo $ac_n "checking how to call pam_strerror""... $ac_c" 1>&6
-echo "configure:5800: checking how to call pam_strerror" >&5
+echo "configure:5894: checking how to call pam_strerror" >&5
     if eval "test \"`echo '$''{'ac_cv_pam_strerror_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5805 "configure"
+#line 5899 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                       #include <stdlib.h>
@@ -5800,7 +5894,7 @@ pam_handle_t *pamh = 0;
                       char *s = pam_strerror(pamh, PAM_SUCCESS);
 ; return 0; }
 EOF
-if { (eval echo configure:5815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_pam_strerror_args=2
 else
@@ -5808,7 +5902,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 5823 "configure"
+#line 5917 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                                       #include <stdlib.h>
@@ -5818,7 +5912,7 @@ char *s =
                                        pam_strerror(PAM_SUCCESS);
 ; return 0; }
 EOF
-if { (eval echo configure:5833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_pam_strerror_args=1
 else
@@ -5875,7 +5969,7 @@ fi
 
     /*)
      echo $ac_n "checking for Kerberos headers""... $ac_c" 1>&6
-echo "configure:5890: checking for Kerberos headers" >&5
+echo "configure:5984: checking for Kerberos headers" >&5
      d=$with_kerberos/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5885,7 +5979,7 @@ echo "configure:5890: checking for Kerberos headers" >&5
      fi
 
      echo $ac_n "checking for Kerberos libs""... $ac_c" 1>&6
-echo "configure:5900: checking for Kerberos libs" >&5
+echo "configure:5994: checking for Kerberos libs" >&5
      d=$with_kerberos/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5911,7 +6005,7 @@ echo "configure:5900: checking for Kerberos libs" >&5
 
 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
   echo $ac_n "checking for Kerberos 4""... $ac_c" 1>&6
-echo "configure:5926: checking for Kerberos 4" >&5
+echo "configure:6020: checking for Kerberos 4" >&5
 if eval "test \"`echo '$''{'ac_cv_kerberos'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5922,14 +6016,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5937 "configure"
+#line 6031 "configure"
 #include "confdefs.h"
 #include <krb.h>
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6038: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_kerberos=yes
 else
@@ -5944,7 +6038,7 @@ fi
 
 echo "$ac_t""$ac_cv_kerberos" 1>&6
   echo $ac_n "checking for Kerberos 5""... $ac_c" 1>&6
-echo "configure:5959: checking for Kerberos 5" >&5
+echo "configure:6053: checking for Kerberos 5" >&5
 if eval "test \"`echo '$''{'ac_cv_kerberos5'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5955,14 +6049,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5970 "configure"
+#line 6064 "configure"
 #include "confdefs.h"
 #include <kerberosIV/krb.h>
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_kerberos5=yes
 else
@@ -6009,12 +6103,12 @@ EOF
 
   if test "$have_kerberos" = yes ; then
     echo $ac_n "checking for res_search""... $ac_c" 1>&6
-echo "configure:6024: checking for res_search" >&5
+echo "configure:6118: checking for res_search" >&5
 if eval "test \"`echo '$''{'ac_cv_func_res_search'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6029 "configure"
+#line 6123 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char res_search(); below.  */
@@ -6037,7 +6131,7 @@ res_search();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_res_search=yes"
 else
@@ -6055,7 +6149,7 @@ if eval "test \"`echo '$ac_cv_func_'res_search`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for res_search in -lresolv""... $ac_c" 1>&6
-echo "configure:6070: checking for res_search in -lresolv" >&5
+echo "configure:6164: checking for res_search in -lresolv" >&5
 ac_lib_var=`echo resolv'_'res_search | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6063,7 +6157,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6078 "configure"
+#line 6172 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6074,7 +6168,7 @@ int main() {
 res_search()
 ; return 0; }
 EOF
-if { (eval echo configure:6089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6129,7 +6223,7 @@ fi
 
     /*)
      echo $ac_n "checking for shadow password headers""... $ac_c" 1>&6
-echo "configure:6144: checking for shadow password headers" >&5
+echo "configure:6238: checking for shadow password headers" >&5
      d=$with_shadow/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6139,7 +6233,7 @@ echo "configure:6144: checking for shadow password headers" >&5
      fi
 
      echo $ac_n "checking for shadow password libs""... $ac_c" 1>&6
-echo "configure:6154: checking for shadow password libs" >&5
+echo "configure:6248: checking for shadow password libs" >&5
      d=$with_shadow/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6177,7 +6271,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for Sun-style shadow passwords""... $ac_c" 1>&6
-echo "configure:6192: checking for Sun-style shadow passwords" >&5
+echo "configure:6286: checking for Sun-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_sun_adjunct'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6188,7 +6282,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6203 "configure"
+#line 6297 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -6201,7 +6295,7 @@ struct passwd_adjunct *p = getpwanam("nobody");
                        const char *pw = p->pwa_passwd;
 ; return 0; }
 EOF
-if { (eval echo configure:6216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sun_adjunct=yes
 else
@@ -6231,7 +6325,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for DEC-style shadow passwords""... $ac_c" 1>&6
-echo "configure:6246: checking for DEC-style shadow passwords" >&5
+echo "configure:6340: checking for DEC-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_enhanced_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6242,7 +6336,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6257 "configure"
+#line 6351 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -6259,7 +6353,7 @@ struct pr_passwd *p;
                        pw = p->ufld.fd_encrypt;
 ; return 0; }
 EOF
-if { (eval echo configure:6274: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_enhanced_passwd=yes
 else
@@ -6283,7 +6377,7 @@ echo "$ac_t""$ac_cv_enhanced_passwd" 1>&6
     # But on DEC, it's in -lsecurity.
     #
     echo $ac_n "checking for getprpwnam in -lprot""... $ac_c" 1>&6
-echo "configure:6298: checking for getprpwnam in -lprot" >&5
+echo "configure:6392: checking for getprpwnam in -lprot" >&5
 ac_lib_var=`echo prot'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6291,7 +6385,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lprot -lx $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6306 "configure"
+#line 6400 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6302,7 +6396,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:6317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6321,7 +6415,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6
-echo "configure:6336: checking for getprpwnam in -lsecurity" >&5
+echo "configure:6430: checking for getprpwnam in -lsecurity" >&5
 ac_lib_var=`echo security'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6329,7 +6423,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsecurity  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6344 "configure"
+#line 6438 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6340,7 +6434,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:6355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6373,7 +6467,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for HP-style shadow passwords""... $ac_c" 1>&6
-echo "configure:6388: checking for HP-style shadow passwords" >&5
+echo "configure:6482: checking for HP-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_hpux_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6384,7 +6478,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6399 "configure"
+#line 6493 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -6397,7 +6491,7 @@ struct s_passwd *p = getspwnam("nobody");
                        const char *pw = p->pw_passwd;
 ; return 0; }
 EOF
-if { (eval echo configure:6412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_hpux_passwd=yes
 else
@@ -6418,7 +6512,7 @@ echo "$ac_t""$ac_cv_hpux_passwd" 1>&6
 
     # on HPUX, bigcrypt is in -lsec
     echo $ac_n "checking for bigcrypt in -lsec""... $ac_c" 1>&6
-echo "configure:6433: checking for bigcrypt in -lsec" >&5
+echo "configure:6527: checking for bigcrypt in -lsec" >&5
 ac_lib_var=`echo sec'_'bigcrypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6426,7 +6520,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6441 "configure"
+#line 6535 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6437,7 +6531,7 @@ int main() {
 bigcrypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6475,7 +6569,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for FreeBSD-style shadow passwords""... $ac_c" 1>&6
-echo "configure:6490: checking for FreeBSD-style shadow passwords" >&5
+echo "configure:6584: checking for FreeBSD-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_master_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6501,7 +6595,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for generic shadow passwords""... $ac_c" 1>&6
-echo "configure:6516: checking for generic shadow passwords" >&5
+echo "configure:6610: checking for generic shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_shadow'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6512,7 +6606,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6527 "configure"
+#line 6621 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -6524,7 +6618,7 @@ struct spwd *p = getspnam("nobody");
                        const char *pw = p->sp_pwdp;
 ; return 0; }
 EOF
-if { (eval echo configure:6539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6633: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_shadow=yes
 else
@@ -6545,7 +6639,7 @@ echo "$ac_t""$ac_cv_shadow" 1>&6
     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
     have_getspnam=no
     echo $ac_n "checking for getspnam in -lc""... $ac_c" 1>&6
-echo "configure:6560: checking for getspnam in -lc" >&5
+echo "configure:6654: checking for getspnam in -lc" >&5
 ac_lib_var=`echo c'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6553,7 +6647,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6568 "configure"
+#line 6662 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6564,7 +6658,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:6579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6586,7 +6680,7 @@ fi
 
     if test "$have_getspnam" = no ; then
       echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6
-echo "configure:6601: checking for getspnam in -lgen" >&5
+echo "configure:6695: checking for getspnam in -lgen" >&5
 ac_lib_var=`echo gen'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6594,7 +6688,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6609 "configure"
+#line 6703 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6605,7 +6699,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:6620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6641,7 +6735,7 @@ if test "$enable_locking" = yes ; then
   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
   have_crypt=no
   echo $ac_n "checking for crypt in -lc""... $ac_c" 1>&6
-echo "configure:6656: checking for crypt in -lc" >&5
+echo "configure:6750: checking for crypt in -lc" >&5
 ac_lib_var=`echo c'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6649,7 +6743,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6664 "configure"
+#line 6758 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6660,7 +6754,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6682,7 +6776,7 @@ fi
 
   if test "$have_crypt" = no ; then
     echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:6697: checking for crypt in -lcrypt" >&5
+echo "configure:6791: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6690,7 +6784,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6705 "configure"
+#line 6799 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6701,7 +6795,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6785,7 +6879,7 @@ fi
 
     /*)
      echo $ac_n "checking for Motif headers""... $ac_c" 1>&6
-echo "configure:6800: checking for Motif headers" >&5
+echo "configure:6894: checking for Motif headers" >&5
      d=$with_motif/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6795,7 +6889,7 @@ echo "configure:6800: checking for Motif headers" >&5
      fi
 
      echo $ac_n "checking for Motif libs""... $ac_c" 1>&6
-echo "configure:6810: checking for Motif libs" >&5
+echo "configure:6904: checking for Motif libs" >&5
      d=$with_motif/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6834,17 +6928,17 @@ if test "$with_motif" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:6849: checking for Xm/Xm.h" >&5
+echo "configure:6943: checking for Xm/Xm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6854 "configure"
+#line 6948 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6883,17 +6977,17 @@ if test "$have_motif" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "Xm/ComboBox.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/ComboBox.h""... $ac_c" 1>&6
-echo "configure:6898: checking for Xm/ComboBox.h" >&5
+echo "configure:6992: checking for Xm/ComboBox.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6903 "configure"
+#line 6997 "configure"
 #include "confdefs.h"
 #include <Xm/ComboBox.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6956,7 +7050,7 @@ esac
 
     /*)
      echo $ac_n "checking for Gtk headers""... $ac_c" 1>&6
-echo "configure:6971: checking for Gtk headers" >&5
+echo "configure:7065: checking for Gtk headers" >&5
      d=$with_gtk/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6966,7 +7060,7 @@ echo "configure:6971: checking for Gtk headers" >&5
      fi
 
      echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
-echo "configure:6981: checking for Gtk libs" >&5
+echo "configure:7075: checking for Gtk libs" >&5
      d=$with_gtk/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7024,7 +7118,7 @@ esac
 
     /*)
      echo $ac_n "checking for Gnome headers""... $ac_c" 1>&6
-echo "configure:7039: checking for Gnome headers" >&5
+echo "configure:7133: checking for Gnome headers" >&5
      d=$with_gnome/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7034,7 +7128,7 @@ echo "configure:7039: checking for Gnome headers" >&5
      fi
 
      echo $ac_n "checking for Gnome libs""... $ac_c" 1>&6
-echo "configure:7049: checking for Gnome libs" >&5
+echo "configure:7143: checking for Gnome libs" >&5
      d=$with_gnome/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7068,21 +7162,21 @@ jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
   
-  # if the user specified --with-gtk=/foo/ then look in /foo/bin/
-  # for glib-config and gtk-config.
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
   #
   gtk_path="$PATH"
 
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
-    gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gtk_dir:$gtk_path"
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$foo:$gtk_path"
   fi
 
-  if test ! -z "gnome_dir"; then
+  if test ! -z "$gnome_dir"; then
     # canonicalize slashes.
-    gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gnome_dir:$gtk_path"
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$foo:$gtk_path"
   fi
 
   for ac_prog in glib12-config glib-config
@@ -7090,7 +7184,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7105: checking for $ac_word" >&5
+echo "configure:7199: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_glib_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7130,7 +7224,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7145: checking for $ac_word" >&5
+echo "configure:7239: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_gtk_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7172,7 +7266,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7187: checking for $ac_word" >&5
+echo "configure:7281: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_gnome_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7209,7 +7303,7 @@ done
 
   fi
 
-  if test -n "$glib_config" -a  -n "gtk_config" ; then
+  if test -n "$glib_config" -a  -n "$gtk_config" ; then
     have_gtk=yes
     if test "$with_gnome" = yes -a -n "$gnome_config" ; then
       have_gnome=yes
@@ -7218,7 +7312,7 @@ done
 
   if test "$have_gtk" = yes; then
     echo $ac_n "checking Gtk version number""... $ac_c" 1>&6
-echo "configure:7233: checking Gtk version number" >&5
+echo "configure:7327: checking Gtk version number" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7247,7 +7341,7 @@ echo "$ac_t""$ac_cv_gtk_version_string" 1>&6
 
   if test "$have_gtk" = yes; then
     echo $ac_n "checking for Gtk includes""... $ac_c" 1>&6
-echo "configure:7262: checking for Gtk includes" >&5
+echo "configure:7356: checking for Gtk includes" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_config_cflags'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7256,7 +7350,7 @@ fi
 
 echo "$ac_t""$ac_cv_gtk_config_cflags" 1>&6
     echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
-echo "configure:7271: checking for Gtk libs" >&5
+echo "configure:7365: checking for Gtk libs" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_config_libs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7271,9 +7365,9 @@ echo "$ac_t""$ac_cv_gtk_config_libs" 1>&6
   # Check for Gnome Capplet support.
   #
   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
-    gnome_config_libs="gtk capplet gnomeui xml gdk_pixbuf"
+    gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
     echo $ac_n "checking for Gnome capplet includes""... $ac_c" 1>&6
-echo "configure:7288: checking for Gnome capplet includes" >&5
+echo "configure:7382: checking for Gnome capplet includes" >&5
     if eval "test \"`echo '$''{'ac_cv_gnome_config_cflags'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7296,7 +7390,7 @@ fi
 
   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
     echo $ac_n "checking for Gnome capplet libs""... $ac_c" 1>&6
-echo "configure:7311: checking for Gnome capplet libs" >&5
+echo "configure:7405: checking for Gnome capplet libs" >&5
     if eval "test \"`echo '$''{'ac_cv_gnome_config_libs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7353,7 +7447,7 @@ EOF
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for capplet_widget_changes_are_immediate in -lcapplet""... $ac_c" 1>&6
-echo "configure:7368: checking for capplet_widget_changes_are_immediate in -lcapplet" >&5
+echo "configure:7462: checking for capplet_widget_changes_are_immediate in -lcapplet" >&5
 ac_lib_var=`echo capplet'_'capplet_widget_changes_are_immediate | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7361,7 +7455,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcapplet $ac_gnome_config_libs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7376 "configure"
+#line 7470 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7372,7 +7466,7 @@ int main() {
 capplet_widget_changes_are_immediate()
 ; return 0; }
 EOF
-if { (eval echo configure:7387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7421,7 +7515,7 @@ if test "$have_gnome" = yes; then
   # Extract the first word of "gnome-help-browser", so it can be a program name with args.
 set dummy gnome-help-browser; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7436: checking for $ac_word" >&5
+echo "configure:7530: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_have_gnome_help'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7455,7 +7549,7 @@ fi
 
 ###############################################################################
 #
-#       Check for -lxml (if we have Gtk)
+#       Check for -lxml
 #
 ###############################################################################
 
@@ -7471,6 +7565,17 @@ else
 fi
 
 
+# if --with-xml=/directory/ was specified, remember that directory so that
+# we can also look for the `xml-config' program in that directory.
+case "$with_xml" in
+  /*)
+    xml_dir="$with_xml"
+    ;;
+  *)
+    xml_dir=""
+    ;;
+esac
+
 
    case "$with_xml" in
     yes) ;;
@@ -7478,7 +7583,7 @@ fi
 
     /*)
      echo $ac_n "checking for XML headers""... $ac_c" 1>&6
-echo "configure:7493: checking for XML headers" >&5
+echo "configure:7598: checking for XML headers" >&5
      d=$with_xml/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7488,7 +7593,7 @@ echo "configure:7493: checking for XML headers" >&5
      fi
 
      echo $ac_n "checking for XML libs""... $ac_c" 1>&6
-echo "configure:7503: checking for XML libs" >&5
+echo "configure:7608: checking for XML libs" >&5
      d=$with_xml/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7517,20 +7622,94 @@ if test "$with_xml" != yes -a "$with_xml" != no ; then
   exit 1
 fi
 
-if test "$have_gtk" != yes; then
-  # don't bother if no GTK
-  with_xml=no
-fi
-
 if test "$with_xml" = yes; then
   have_xml=no
 
-  # the XML stuff is likely to be in GTK paths.
-  ac_save_X_CFLAGS="$X_CFLAGS"
-  ac_save_X_LIBS="$X_LIBS"
-  X_CFLAGS="$X_CFLAGS $ac_gtk_config_cflags"
-  X_LIBS="$X_LIBS $ac_gtk_config_libs"
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for for xml-config.
+  #
+  xml_path="$PATH"
 
+  if test ! -z "$gtk_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    xml_path="$foo:$xml_path"
+  fi
+
+  if test ! -z "$gnome_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    xml_path="$foo:$xml_path"
+  fi
+
+  for ac_prog in xml2-config xml-config
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:7662: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_xml_config'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$xml_config" in
+  /*)
+  ac_cv_path_xml_config="$xml_config" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_xml_config="$xml_config" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$xml_path"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_xml_config="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+xml_config="$ac_cv_path_xml_config"
+if test -n "$xml_config"; then
+  echo "$ac_t""$xml_config" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$xml_config" && break
+done
+
+
+  # If we found the xml-config program, run it to get flags.
+  #
+  if test -n "$xml_config" ; then
+    echo $ac_n "checking for XML includes""... $ac_c" 1>&6
+echo "configure:7702: checking for XML includes" >&5
+if eval "test \"`echo '$''{'ac_cv_xml_config_cflags'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_xml_config_cflags=`$xml_config --cflags`
+fi
+
+echo "$ac_t""$ac_cv_xml_config_cflags" 1>&6
+    echo $ac_n "checking for XML libs""... $ac_c" 1>&6
+echo "configure:7711: checking for XML libs" >&5
+if eval "test \"`echo '$''{'ac_cv_xml_config_libs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_xml_config_libs=`$xml_config --libs`
+fi
+
+echo "$ac_t""$ac_cv_xml_config_libs" 1>&6
+    ac_xml_config_cflags=$ac_cv_xml_config_cflags
+    ac_xml_config_libs=$ac_cv_xml_config_libs
+  fi
+
+  ac_save_xml_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
   
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
@@ -7539,17 +7718,17 @@ if test "$with_xml" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "xmlIO.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for xmlIO.h""... $ac_c" 1>&6
-echo "configure:7554: checking for xmlIO.h" >&5
+echo "configure:7733: checking for xmlIO.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7559 "configure"
+#line 7738 "configure"
 #include "confdefs.h"
 #include <xmlIO.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7564: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7571,6 +7750,7 @@ else
 fi
 
   CPPFLAGS="$ac_save_CPPFLAGS"
+  CPPFLAGS="$ac_save_xml_CPPFLAGS"
 
   if test "$have_xml" = yes; then
     # we have the header, now check for the library
@@ -7594,15 +7774,15 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for xmlParseChunk in -lxml""... $ac_c" 1>&6
-echo "configure:7609: checking for xmlParseChunk in -lxml" >&5
+echo "configure:7789: checking for xmlParseChunk in -lxml" >&5
 ac_lib_var=`echo xml'_'xmlParseChunk | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lxml  $LIBS"
+LIBS="-lxml $ac_xml_config_libs $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7617 "configure"
+#line 7797 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7613,7 +7793,7 @@ int main() {
 xmlParseChunk()
 ; return 0; }
 EOF
-if { (eval echo configure:7628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7637,6 +7817,7 @@ EOF
 
 else
   echo "$ac_t""no" 1>&6
+true
 fi
 
   CPPFLAGS="$ac_save_CPPFLAGS"
@@ -7645,8 +7826,14 @@ fi
   
   fi
 
-  X_CFLAGS="$ac_save_X_CFLAGS"
-  X_LIBS="$ac_save_X_LIBS"
+  if test "$have_xml" = yes; then
+    INCLUDES="$INCLUDES $ac_xml_config_cflags"
+    GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
+    cat >> confdefs.h <<\EOF
+#define HAVE_XML 1
+EOF
+
+  fi
 
 fi
 
@@ -7660,7 +7847,7 @@ fi
 have_lesstif=no
 if test "$have_motif" = yes ; then
   echo $ac_n "checking whether Motif is really LessTif""... $ac_c" 1>&6
-echo "configure:7675: checking whether Motif is really LessTif" >&5
+echo "configure:7862: checking whether Motif is really LessTif" >&5
 if eval "test \"`echo '$''{'ac_cv_have_lesstif'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7671,14 +7858,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 7686 "configure"
+#line 7873 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 int main() {
 long vers = LesstifVersion;
 ; return 0; }
 EOF
-if { (eval echo configure:7693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7880: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_lesstif=yes
 else
@@ -7703,7 +7890,7 @@ if test "$have_lesstif" = yes ; then
   ltv=unknown
   echo unknown > conftest-lt
   echo $ac_n "checking LessTif version number""... $ac_c" 1>&6
-echo "configure:7718: checking LessTif version number" >&5
+echo "configure:7905: checking LessTif version number" >&5
 if eval "test \"`echo '$''{'ac_cv_lesstif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7718,7 +7905,7 @@ else
                      ac_cv_lesstif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 7733 "configure"
+#line 7920 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
@@ -7731,7 +7918,7 @@ else
                        exit(0);
                      }
 EOF
-if { (eval echo configure:7746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ltv=`cat conftest-lt`
                      ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
@@ -7761,7 +7948,7 @@ if test "$have_motif" = yes ; then
   mtv=unknown
   echo unknown > conftest-mt
   echo $ac_n "checking Motif version number""... $ac_c" 1>&6
-echo "configure:7776: checking Motif version number" >&5
+echo "configure:7963: checking Motif version number" >&5
 if eval "test \"`echo '$''{'ac_cv_motif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7776,7 +7963,7 @@ else
                      ac_cv_motif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 7791 "configure"
+#line 7978 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
@@ -7789,7 +7976,7 @@ else
                        exit(0);
                      }
 EOF
-if { (eval echo configure:7804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   mtv=`cat conftest-mt`
                      ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
@@ -7833,7 +8020,7 @@ fi
 motif_requires_xpm=no
 if test "$have_motif" = yes ; then
    echo $ac_n "checking whether Motif requires XPM""... $ac_c" 1>&6
-echo "configure:7848: checking whether Motif requires XPM" >&5
+echo "configure:8035: checking whether Motif requires XPM" >&5
    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
    then
      motif_requires_xpm=yes
@@ -7875,7 +8062,7 @@ if test "$have_motif" = yes ; then
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XpQueryExtension in -lXp""... $ac_c" 1>&6
-echo "configure:7890: checking for XpQueryExtension in -lXp" >&5
+echo "configure:8077: checking for XpQueryExtension in -lXp" >&5
 ac_lib_var=`echo Xp'_'XpQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7883,7 +8070,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXp -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7898 "configure"
+#line 8085 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7894,7 +8081,7 @@ int main() {
 XpQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:7909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7948,7 +8135,7 @@ if test "$have_motif" = yes ; then
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for _Xsetlocale in -lXintl""... $ac_c" 1>&6
-echo "configure:7963: checking for _Xsetlocale in -lXintl" >&5
+echo "configure:8150: checking for _Xsetlocale in -lXintl" >&5
 ac_lib_var=`echo Xintl'_'_Xsetlocale | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7956,7 +8143,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXintl -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7971 "configure"
+#line 8158 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7967,7 +8154,7 @@ int main() {
 _Xsetlocale()
 ; return 0; }
 EOF
-if { (eval echo configure:7982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8024,7 +8211,7 @@ fi
 
     /*)
      echo $ac_n "checking for GL headers""... $ac_c" 1>&6
-echo "configure:8039: checking for GL headers" >&5
+echo "configure:8226: checking for GL headers" >&5
      d=$with_gl/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -8034,7 +8221,7 @@ echo "configure:8039: checking for GL headers" >&5
      fi
 
      echo $ac_n "checking for GL libs""... $ac_c" 1>&6
-echo "configure:8049: checking for GL libs" >&5
+echo "configure:8236: checking for GL libs" >&5
      d=$with_gl/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -8070,17 +8257,17 @@ if test "$with_gl" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gl.h""... $ac_c" 1>&6
-echo "configure:8085: checking for GL/gl.h" >&5
+echo "configure:8272: checking for GL/gl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8090 "configure"
+#line 8277 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8095: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8111,17 +8298,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/glx.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/glx.h""... $ac_c" 1>&6
-echo "configure:8126: checking for GL/glx.h" >&5
+echo "configure:8313: checking for GL/glx.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8131 "configure"
+#line 8318 "configure"
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8136: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8153,7 +8340,7 @@ fi
     # to link against.
     #
     echo $ac_n "checking whether GL is really MesaGL""... $ac_c" 1>&6
-echo "configure:8168: checking whether GL is really MesaGL" >&5
+echo "configure:8355: checking whether GL is really MesaGL" >&5
 if eval "test \"`echo '$''{'ac_cv_have_mesa_gl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8165,7 +8352,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 8180 "configure"
+#line 8367 "configure"
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
@@ -8194,7 +8381,7 @@ echo "$ac_t""$ac_cv_have_mesa_gl" 1>&6
     #
     if test "$ac_have_mesa_gl" = yes; then
       echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
-echo "configure:8209: checking for pthread_create in -lpthread" >&5
+echo "configure:8396: checking for pthread_create in -lpthread" >&5
 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8202,7 +8389,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8217 "configure"
+#line 8404 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8213,7 +8400,7 @@ int main() {
 pthread_create()
 ; return 0; }
 EOF
-if { (eval echo configure:8228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8260,7 +8447,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lMesaGL""... $ac_c" 1>&6
-echo "configure:8275: checking for glXCreateContext in -lMesaGL" >&5
+echo "configure:8462: checking for glXCreateContext in -lMesaGL" >&5
 ac_lib_var=`echo MesaGL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8268,7 +8455,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lMesaGL -lMesaGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8283 "configure"
+#line 8470 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8279,7 +8466,7 @@ int main() {
 glXCreateContext()
 ; return 0; }
 EOF
-if { (eval echo configure:8294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8325,7 +8512,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lGL""... $ac_c" 1>&6
-echo "configure:8340: checking for glXCreateContext in -lGL" >&5
+echo "configure:8527: checking for glXCreateContext in -lGL" >&5
 ac_lib_var=`echo GL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8333,7 +8520,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lGL -lGLU $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8348 "configure"
+#line 8535 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8344,7 +8531,7 @@ int main() {
 glXCreateContext()
 ; return 0; }
 EOF
-if { (eval echo configure:8359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8402,12 +8589,12 @@ EOF
     if test "$ac_have_mesa_gl" = yes; then
 
       echo $ac_n "checking MesaGL version number""... $ac_c" 1>&6
-echo "configure:8417: checking MesaGL version number" >&5
+echo "configure:8604: checking MesaGL version number" >&5
 if eval "test \"`echo '$''{'ac_cv_mesagl_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8422 "configure"
+#line 8609 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 #ifndef MESA_MAJOR_VERSION
@@ -8478,7 +8665,7 @@ echo "$ac_t""$ac_cv_mesagl_version_string" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for glBindTexture in -l$gl_lib_1""... $ac_c" 1>&6
-echo "configure:8493: checking for glBindTexture in -l$gl_lib_1" >&5
+echo "configure:8680: checking for glBindTexture in -l$gl_lib_1" >&5
 ac_lib_var=`echo $gl_lib_1'_'glBindTexture | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8486,7 +8673,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8501 "configure"
+#line 8688 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8497,7 +8684,7 @@ int main() {
 glBindTexture()
 ; return 0; }
 EOF
-if { (eval echo configure:8512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8558,7 +8745,7 @@ fi
 
     /*)
      echo $ac_n "checking for GLE headers""... $ac_c" 1>&6
-echo "configure:8573: checking for GLE headers" >&5
+echo "configure:8760: checking for GLE headers" >&5
      d=$with_gle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -8568,7 +8755,7 @@ echo "configure:8573: checking for GLE headers" >&5
      fi
 
      echo $ac_n "checking for GLE libs""... $ac_c" 1>&6
-echo "configure:8583: checking for GLE libs" >&5
+echo "configure:8770: checking for GLE libs" >&5
      d=$with_gle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -8604,17 +8791,17 @@ if test "$with_gle" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gle.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gle.h""... $ac_c" 1>&6
-echo "configure:8619: checking for GL/gle.h" >&5
+echo "configure:8806: checking for GL/gle.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8624 "configure"
+#line 8811 "configure"
 #include "confdefs.h"
 #include <GL/gle.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8647,17 +8834,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gutil.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gutil.h""... $ac_c" 1>&6
-echo "configure:8662: checking for GL/gutil.h" >&5
+echo "configure:8849: checking for GL/gutil.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8667 "configure"
+#line 8854 "configure"
 #include "confdefs.h"
 #include <GL/gutil.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8672: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8688,17 +8875,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/tube.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/tube.h""... $ac_c" 1>&6
-echo "configure:8703: checking for GL/tube.h" >&5
+echo "configure:8890: checking for GL/tube.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8708 "configure"
+#line 8895 "configure"
 #include "confdefs.h"
 #include <GL/tube.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8713: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8744,7 +8931,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for gleCreateGC in -lgle""... $ac_c" 1>&6
-echo "configure:8759: checking for gleCreateGC in -lgle" >&5
+echo "configure:8946: checking for gleCreateGC in -lgle" >&5
 ac_lib_var=`echo gle'_'gleCreateGC | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8752,7 +8939,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8767 "configure"
+#line 8954 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8763,7 +8950,7 @@ int main() {
 gleCreateGC()
 ; return 0; }
 EOF
-if { (eval echo configure:8778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8823,7 +9010,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for uview_direction in -lgle""... $ac_c" 1>&6
-echo "configure:8838: checking for uview_direction in -lgle" >&5
+echo "configure:9025: checking for uview_direction in -lgle" >&5
 ac_lib_var=`echo gle'_'uview_direction | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8831,7 +9018,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8846 "configure"
+#line 9033 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8842,7 +9029,7 @@ int main() {
 uview_direction()
 ; return 0; }
 EOF
-if { (eval echo configure:8857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8887,7 +9074,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for uview_direction_d in -lmatrix""... $ac_c" 1>&6
-echo "configure:8902: checking for uview_direction_d in -lmatrix" >&5
+echo "configure:9089: checking for uview_direction_d in -lmatrix" >&5
 ac_lib_var=`echo matrix'_'uview_direction_d | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8895,7 +9082,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmatrix $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8910 "configure"
+#line 9097 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8906,7 +9093,7 @@ int main() {
 uview_direction_d()
 ; return 0; }
 EOF
-if { (eval echo configure:8921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8979,7 +9166,7 @@ fi
 
     /*)
      echo $ac_n "checking for XPM headers""... $ac_c" 1>&6
-echo "configure:8994: checking for XPM headers" >&5
+echo "configure:9181: checking for XPM headers" >&5
      d=$with_xpm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -8989,7 +9176,7 @@ echo "configure:8994: checking for XPM headers" >&5
      fi
 
      echo $ac_n "checking for XPM libs""... $ac_c" 1>&6
-echo "configure:9004: checking for XPM libs" >&5
+echo "configure:9191: checking for XPM libs" >&5
      d=$with_xpm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -9022,17 +9209,17 @@ if test "$with_xpm" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/xpm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/xpm.h""... $ac_c" 1>&6
-echo "configure:9037: checking for X11/xpm.h" >&5
+echo "configure:9224: checking for X11/xpm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9042 "configure"
+#line 9229 "configure"
 #include "confdefs.h"
 #include <X11/xpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9047: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9091,6 +9278,17 @@ else
 fi
 
 
+# if --with-pixbuf=/directory/ was specified, remember that directory so that
+# we can also look for the `gdk-pixbuf-config' program in that directory.
+case "$with_gdk_pixbuf" in
+  /*)
+    gdk_pixbuf_dir="$with_gdk_pixbuf"
+    ;;
+  *)
+    gdk_pixbuf_dir=""
+    ;;
+esac
+
 
    case "$with_gdk_pixbuf" in
     yes) ;;
@@ -9098,7 +9296,7 @@ fi
 
     /*)
      echo $ac_n "checking for GDK_PIXBUF headers""... $ac_c" 1>&6
-echo "configure:9113: checking for GDK_PIXBUF headers" >&5
+echo "configure:9311: checking for GDK_PIXBUF headers" >&5
      d=$with_gdk_pixbuf/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -9108,7 +9306,7 @@ echo "configure:9113: checking for GDK_PIXBUF headers" >&5
      fi
 
      echo $ac_n "checking for GDK_PIXBUF libs""... $ac_c" 1>&6
-echo "configure:9123: checking for GDK_PIXBUF libs" >&5
+echo "configure:9321: checking for GDK_PIXBUF libs" >&5
      d=$with_gdk_pixbuf/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -9132,15 +9330,102 @@ echo "configure:9123: checking for GDK_PIXBUF libs" >&5
    esac
   
 
+if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
+  echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
+  exit 1
+fi
+
 if test "$with_gdk_pixbuf" = yes; then
+  have_gdk_pixbuf=no
 
-  if test "$have_gtk" = yes; then
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for for gdk-pixbuf-config.
+  #
+  gdk_pixbuf_path="$PATH"
+
+  if test ! -z "$gtk_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+  fi
 
-    ac_save_gdk_CPPFLAGS="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS $ac_gtk_config_cflags"
+  if test ! -z "$gnome_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+  fi
 
-    have_gdk_pixbuf=no
-    
+  for ac_prog in gdk-pixbuf-config
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:9375: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_gdk_pixbuf_config'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$gdk_pixbuf_config" in
+  /*)
+  ac_cv_path_gdk_pixbuf_config="$gdk_pixbuf_config" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_gdk_pixbuf_config="$gdk_pixbuf_config" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$gdk_pixbuf_path"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_gdk_pixbuf_config="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+gdk_pixbuf_config="$ac_cv_path_gdk_pixbuf_config"
+if test -n "$gdk_pixbuf_config"; then
+  echo "$ac_t""$gdk_pixbuf_config" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$gdk_pixbuf_config" && break
+done
+
+
+  # If we found the gdk-pixbuf-config program, run it to get flags.
+  #
+  if test -n "$gdk_pixbuf_config" ; then
+    echo $ac_n "checking for gdk-pixbuf includes""... $ac_c" 1>&6
+echo "configure:9415: checking for gdk-pixbuf includes" >&5
+if eval "test \"`echo '$''{'ac_cv_gdk_pixbuf_config_cflags'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`
+fi
+
+echo "$ac_t""$ac_cv_gdk_pixbuf_config_cflags" 1>&6
+    echo $ac_n "checking for gdk-pixbuf libs""... $ac_c" 1>&6
+echo "configure:9424: checking for gdk-pixbuf libs" >&5
+if eval "test \"`echo '$''{'ac_cv_gdk_pixbuf_config_libs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`
+fi
+
+echo "$ac_t""$ac_cv_gdk_pixbuf_config_libs" 1>&6
+    ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
+    ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
+  fi
+
+  ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
+
+  # check for header 1...
+  
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
@@ -9148,17 +9433,17 @@ if test "$with_gdk_pixbuf" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "gdk-pixbuf/gdk-pixbuf.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for gdk-pixbuf/gdk-pixbuf.h""... $ac_c" 1>&6
-echo "configure:9163: checking for gdk-pixbuf/gdk-pixbuf.h" >&5
+echo "configure:9448: checking for gdk-pixbuf/gdk-pixbuf.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9168 "configure"
+#line 9453 "configure"
 #include "confdefs.h"
 #include <gdk-pixbuf/gdk-pixbuf.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9180,9 +9465,11 @@ else
 fi
 
   CPPFLAGS="$ac_save_CPPFLAGS"
-    if test "$have_gdk_pixbuf" = yes; then
-      have_gdk_pixbuf=no
-      
+
+  # if that worked, check for header 2...
+  if test "$have_gdk_pixbuf" = yes; then
+    have_gdk_pixbuf=no
+    
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then 
     CPPFLAGS="$CPPFLAGS -I$includedir"
@@ -9190,17 +9477,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "gdk-pixbuf/gdk-pixbuf-xlib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for gdk-pixbuf/gdk-pixbuf-xlib.h""... $ac_c" 1>&6
-echo "configure:9205: checking for gdk-pixbuf/gdk-pixbuf-xlib.h" >&5
+echo "configure:9492: checking for gdk-pixbuf/gdk-pixbuf-xlib.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9210 "configure"
+#line 9497 "configure"
 #include "confdefs.h"
 #include <gdk-pixbuf/gdk-pixbuf-xlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9502: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9222,22 +9509,153 @@ else
 fi
 
   CPPFLAGS="$ac_save_CPPFLAGS"
-    fi
+  fi
+
+  CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
+
+  if test "$have_gdk_pixbuf" = yes; then
+    # we have the headers, now check for the libraries
+    have_gdk_pixbuf=no
+    gdk_pixbuf_halfassed=yes
+    # library 1...
+    
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_save_LDFLAGS="$LDFLAGS"
+#  ac_save_LIBS="$LIBS"
 
-    CPPFLAGS="$ac_save_gdk_CPPFLAGS"
+  if test \! -z "$includedir" ; then 
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  # note: $X_CFLAGS includes $x_includes
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 
+  if test \! -z "$libdir" ; then
+    LDFLAGS="$LDFLAGS -L$libdir"
+  fi
+  # note: $X_LIBS includes $x_libraries
+  LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
+
+  echo $ac_n "checking for gdk_pixbuf_new_from_file in -lgdk_pixbuf""... $ac_c" 1>&6
+echo "configure:9551: checking for gdk_pixbuf_new_from_file in -lgdk_pixbuf" >&5
+ac_lib_var=`echo gdk_pixbuf'_'gdk_pixbuf_new_from_file | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lgdk_pixbuf $ac_gdk_pixbuf_config_libs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9559 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char gdk_pixbuf_new_from_file();
+
+int main() {
+gdk_pixbuf_new_from_file()
+; return 0; }
+EOF
+if { (eval echo configure:9570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  have_gdk_pixbuf=yes
+else
+  echo "$ac_t""no" 1>&6
+true
+fi
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  LDFLAGS="$ac_save_LDFLAGS"
+#  LIBS="$ac_save_LIBS"
+  
+    # library 2...
     if test "$have_gdk_pixbuf" = yes; then
-      cat >> confdefs.h <<\EOF
-#define HAVE_GDK_PIXBUF 1
+      
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_save_LDFLAGS="$LDFLAGS"
+#  ac_save_LIBS="$LIBS"
+
+  if test \! -z "$includedir" ; then 
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  # note: $X_CFLAGS includes $x_includes
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+  if test \! -z "$libdir" ; then
+    LDFLAGS="$LDFLAGS -L$libdir"
+  fi
+  # note: $X_LIBS includes $x_libraries
+  LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
+
+  echo $ac_n "checking for gdk_pixbuf_xlib_init in -lgdk_pixbuf_xlib""... $ac_c" 1>&6
+echo "configure:9615: checking for gdk_pixbuf_xlib_init in -lgdk_pixbuf_xlib" >&5
+ac_lib_var=`echo gdk_pixbuf_xlib'_'gdk_pixbuf_xlib_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lgdk_pixbuf_xlib $ac_gdk_pixbuf_config_libs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9623 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char gdk_pixbuf_xlib_init();
+
+int main() {
+gdk_pixbuf_xlib_init()
+; return 0; }
 EOF
+if { (eval echo configure:9634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  have_gdk_pixbuf=yes
+                      gdk_pixbuf_halfassed=no
+else
+  echo "$ac_t""no" 1>&6
+true
+fi
 
-      XPM_LIBS="-lgdk_pixbuf -lgdk_pixbuf_xlib"
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  LDFLAGS="$ac_save_LDFLAGS"
+#  LIBS="$ac_save_LIBS"
+  
     fi
   fi
 
-elif test "$with_gdk_pixbuf" != no; then
-  echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
-  exit 1
+  if test "$have_gdk_pixbuf" = yes; then
+    INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
+    XPM_LIBS="$ac_gdk_pixbuf_config_libs -lgdk_pixbuf -lgdk_pixbuf_xlib"
+    cat >> confdefs.h <<\EOF
+#define HAVE_GDK_PIXBUF 1
+EOF
+
+  fi
 fi
 
 
@@ -9266,7 +9684,7 @@ fi
 
     /*)
      echo $ac_n "checking for JPEG headers""... $ac_c" 1>&6
-echo "configure:9281: checking for JPEG headers" >&5
+echo "configure:9699: checking for JPEG headers" >&5
      d=$with_jpeg/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -9276,7 +9694,7 @@ echo "configure:9281: checking for JPEG headers" >&5
      fi
 
      echo $ac_n "checking for JPEG libs""... $ac_c" 1>&6
-echo "configure:9291: checking for JPEG libs" >&5
+echo "configure:9709: checking for JPEG libs" >&5
      d=$with_jpeg/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -9316,17 +9734,17 @@ if test "$with_jpeg" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6
-echo "configure:9331: checking for jpeglib.h" >&5
+echo "configure:9749: checking for jpeglib.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9336 "configure"
+#line 9754 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9371,7 +9789,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for jpeg_start_compress in -ljpeg""... $ac_c" 1>&6
-echo "configure:9386: checking for jpeg_start_compress in -ljpeg" >&5
+echo "configure:9804: checking for jpeg_start_compress in -ljpeg" >&5
 ac_lib_var=`echo jpeg'_'jpeg_start_compress | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9379,7 +9797,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ljpeg  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 9394 "configure"
+#line 9812 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9390,7 +9808,7 @@ int main() {
 jpeg_start_compress()
 ; return 0; }
 EOF
-if { (eval echo configure:9405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9448,7 +9866,7 @@ fi
 
     /*)
      echo $ac_n "checking for XSHM headers""... $ac_c" 1>&6
-echo "configure:9463: checking for XSHM headers" >&5
+echo "configure:9881: checking for XSHM headers" >&5
      d=$with_xshm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -9458,7 +9876,7 @@ echo "configure:9463: checking for XSHM headers" >&5
      fi
 
      echo $ac_n "checking for XSHM libs""... $ac_c" 1>&6
-echo "configure:9473: checking for XSHM libs" >&5
+echo "configure:9891: checking for XSHM libs" >&5
      d=$with_xshm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -9493,17 +9911,17 @@ if test "$with_xshm" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XShm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XShm.h""... $ac_c" 1>&6
-echo "configure:9508: checking for X11/extensions/XShm.h" >&5
+echo "configure:9926: checking for X11/extensions/XShm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9513 "configure"
+#line 9931 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XShm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9518: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9936: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9537,17 +9955,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6
-echo "configure:9552: checking for sys/ipc.h" >&5
+echo "configure:9970: checking for sys/ipc.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9557 "configure"
+#line 9975 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9562: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/shm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/shm.h""... $ac_c" 1>&6
-echo "configure:9597: checking for sys/shm.h" >&5
+echo "configure:10015: checking for sys/shm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9602 "configure"
+#line 10020 "configure"
 #include "confdefs.h"
 #include <sys/shm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9607: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9644,7 +10062,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   echo $ac_n "checking for XShmQueryExtension in -lXextSam""... $ac_c" 1>&6
-echo "configure:9659: checking for XShmQueryExtension in -lXextSam" >&5
+echo "configure:10077: checking for XShmQueryExtension in -lXextSam" >&5
 ac_lib_var=`echo XextSam'_'XShmQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9652,7 +10070,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXextSam -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 9667 "configure"
+#line 10085 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9663,7 +10081,7 @@ int main() {
 XShmQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:9678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9730,7 +10148,7 @@ fi
 
     /*)
      echo $ac_n "checking for DOUBLE-BUFFER headers""... $ac_c" 1>&6
-echo "configure:9745: checking for DOUBLE-BUFFER headers" >&5
+echo "configure:10163: checking for DOUBLE-BUFFER headers" >&5
      d=$with_xdbe/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -9740,7 +10158,7 @@ echo "configure:9745: checking for DOUBLE-BUFFER headers" >&5
      fi
 
      echo $ac_n "checking for DOUBLE-BUFFER libs""... $ac_c" 1>&6
-echo "configure:9755: checking for DOUBLE-BUFFER libs" >&5
+echo "configure:10173: checking for DOUBLE-BUFFER libs" >&5
      d=$with_xdbe/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -9774,17 +10192,17 @@ if test "$with_xdbe" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/Xdbe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/Xdbe.h""... $ac_c" 1>&6
-echo "configure:9789: checking for X11/extensions/Xdbe.h" >&5
+echo "configure:10207: checking for X11/extensions/Xdbe.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9794 "configure"
+#line 10212 "configure"
 #include "confdefs.h"
 #include <X11/extensions/Xdbe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9847,7 +10265,7 @@ fi
 
     /*)
      echo $ac_n "checking for XReadDisplay headers""... $ac_c" 1>&6
-echo "configure:9862: checking for XReadDisplay headers" >&5
+echo "configure:10280: checking for XReadDisplay headers" >&5
      d=$with_readdisplay/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -9857,7 +10275,7 @@ echo "configure:9862: checking for XReadDisplay headers" >&5
      fi
 
      echo $ac_n "checking for XReadDisplay libs""... $ac_c" 1>&6
-echo "configure:9872: checking for XReadDisplay libs" >&5
+echo "configure:10290: checking for XReadDisplay libs" >&5
      d=$with_readdisplay/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -9890,17 +10308,17 @@ if test "$with_readdisplay" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/readdisplay.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/readdisplay.h""... $ac_c" 1>&6
-echo "configure:9905: checking for X11/extensions/readdisplay.h" >&5
+echo "configure:10323: checking for X11/extensions/readdisplay.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9910 "configure"
+#line 10328 "configure"
 #include "confdefs.h"
 #include <X11/extensions/readdisplay.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9915: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10333: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9965,7 +10383,7 @@ if test -n "$with_fortune_req" ; then
 
       set dummy $with_fortune_req ; fortune_tmp=$2
       echo $ac_n "checking for $fortune_tmp""... $ac_c" 1>&6
-echo "configure:9980: checking for $fortune_tmp" >&5
+echo "configure:10398: checking for $fortune_tmp" >&5
       if test -x "$fortune_tmp" ; then
         echo "$ac_t""yes" 1>&6
       else
@@ -9980,7 +10398,7 @@ echo "configure:9980: checking for $fortune_tmp" >&5
       # Extract the first word of "$fortune_tmp", so it can be a program name with args.
 set dummy $fortune_tmp; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9995: checking for $ac_word" >&5
+echo "configure:10413: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_fortune_tmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10034,7 +10452,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:10049: checking for $ac_word" >&5
+echo "configure:10467: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_fortune_tmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10077,7 +10495,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:10092: checking for $ac_word" >&5
+echo "configure:10510: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_fortune_tmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10119,7 +10537,7 @@ done
   #
   fortune_tmp="$fortune_tmp zippy"
   echo $ac_n "checking for zippy quotes""... $ac_c" 1>&6
-echo "configure:10134: checking for zippy quotes" >&5
+echo "configure:10552: checking for zippy quotes" >&5
   if ( $fortune_tmp >/dev/null 2>&1 ); then
     ac_cv_fortune_program="$fortune_tmp"
     echo "$ac_t""$fortune_tmp" 1>&6
@@ -10163,7 +10581,7 @@ fi
 
     /*)
      echo $ac_n "checking for setuid hacks headers""... $ac_c" 1>&6
-echo "configure:10178: checking for setuid hacks headers" >&5
+echo "configure:10596: checking for setuid hacks headers" >&5
      d=$setuid_hacks/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -10173,7 +10591,7 @@ echo "configure:10178: checking for setuid hacks headers" >&5
      fi
 
      echo $ac_n "checking for setuid hacks libs""... $ac_c" 1>&6
-echo "configure:10188: checking for setuid hacks libs" >&5
+echo "configure:10606: checking for setuid hacks libs" >&5
      d=$setuid_hacks/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -10309,6 +10727,7 @@ fi
 
 # Now that we know whether we have Gnome, we can decide where the XML
 # config files get installed.
+#
 if test -z "$HACK_CONF_DIR" ; then
   if test -n "$GNOME_DATADIR" ; then
     HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
@@ -10317,6 +10736,21 @@ if test -z "$HACK_CONF_DIR" ; then
   fi
 fi
 
+
+
+# After computing $HACK_CONF_DIR, make sure $GTK_ICONDIR has a value
+# so that we know where to install the Gtk pixmaps.
+#
+if test -n "$GNOME_DATADIR" ; then
+  GTK_ICONDIR='$(GNOME_DATADIR)/pixmaps'
+elif test "$have_gtk" = yes; then
+  # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong...
+  GTK_ICONDIR='/usr/share/pixmaps'
+else
+  GTK_ICONDIR=''
+fi
+
+
 # canonicalize slashes.
 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
 
@@ -10371,6 +10805,7 @@ HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
 
 
 
+
 
 
 APPDEFAULTS=$ac_x_app_defaults
@@ -10526,6 +10961,7 @@ s%@host_vendor@%$host_vendor%g
 s%@host_os@%$host_os%g
 s%@CC@%$CC%g
 s%@CPP@%$CPP%g
+s%@EXEEXT@%$EXEEXT%g
 s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
 s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
 s%@INSTALL_DATA@%$INSTALL_DATA%g
@@ -10539,6 +10975,8 @@ s%@glib_config@%$glib_config%g
 s%@gtk_config@%$gtk_config%g
 s%@gnome_config@%$gnome_config%g
 s%@have_gnome_help@%$have_gnome_help%g
+s%@xml_config@%$xml_config%g
+s%@gdk_pixbuf_config@%$gdk_pixbuf_config%g
 s%@fortune_tmp@%$fortune_tmp%g
 s%@INCLUDES@%$INCLUDES%g
 s%@PREFERRED_DEMO_PROGRAM@%$PREFERRED_DEMO_PROGRAM%g
@@ -10581,6 +11019,7 @@ s%@GNOMEHELP_Y@%$GNOMEHELP_Y%g
 s%@GNOMEHELP_N@%$GNOMEHELP_N%g
 s%@HACKDIR@%$HACKDIR%g
 s%@GNOME_DATADIR@%$GNOME_DATADIR%g
+s%@GTK_ICONDIR@%$GTK_ICONDIR%g
 s%@HACK_CONF_DIR@%$HACK_CONF_DIR%g
 s%@APPDEFAULTS@%$APPDEFAULTS%g
 s%@DEPEND@%$DEPEND%g
@@ -10998,11 +11437,11 @@ if test "$have_motif" = yes -a "$have_gtk" = no ; then
 fi
 
 
-if test "$with_xpm_req" = yes ; then
+if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
   warnL 'Use of XPM was requested, but it was not found.'
 fi
 
-if test "$with_gdk_pixbuf_req" = yes ; then
+if test "$with_gdk_pixbuf_req" = yes  -a "$have_gdk_pixbuf" = no; then
   warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
 fi
 
@@ -11024,6 +11463,14 @@ if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then
     warnL 'The GDK-Pixbuf library was not found.'
   fi
 
+  if test "$gdk_pixbuf_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+  fi
+
   echo ''
   warn2 'Some of the demos will not be as colorful as they'
   warn2 'could be.  You should consider installing Pixbuf or'
@@ -11254,12 +11701,11 @@ if test "$do_dir_warning" = yes; then
   echo "      will be installed in ${bindir}/."
   echo ""
   echo "      The various graphics demos (140+ different executables) will"
-  echo "      also be installed in ${HACKDIR}/."
+  echo "      be installed in ${HACKDIR}/."
   echo ""
-  echo "      If you would prefer the demos to be installed elsewhere"
-  echo "      (for example, in a dedicated directory) you should re-run"
-  echo "      configure with the --with-hackdir=DIR option.  For more"
-  echo "      information, run $0 --help."
+  echo "      If you would prefer the demos to be installed elsewhere,"
+  echo "      you should re-run configure with the --with-hackdir=DIR"
+  echo "      option.  For more information, run \`./configure --help'."
   warning=yes
 fi
 
index 335afa2f57b60e219ed7c881b64b63c61febaa7b..f965a9cf5635694cd7683f9d760e3babd34faff7 100644 (file)
@@ -1,6 +1,7 @@
 # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski.
 #
 
+AC_PREREQ(2.13)
 AC_INIT(driver/subprocs.c)
 AC_CONFIG_HEADER(config.h)
 
@@ -746,6 +747,7 @@ AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE
 AC_PROG_CPP
 AC_C_CONST
 AC_C_INLINE
+AC_EXEEXT
 AC_DEMAND_BC
 
 # stuff for Makefiles
@@ -771,7 +773,7 @@ AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_GETTIMEOFDAY_ARGS
-AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv)
+AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk)
 
 AC_CHECK_FUNCS(sigaction syslog realpath setrlimit)
 AC_CHECK_ICMP
@@ -871,8 +873,7 @@ AC_ARG_WITH(hackdir,[
 Installation options:
 
   --with-hackdir=DIR      Where to install the hundreds of demo executables.
-                          Default: \`PREFIX/lib/xscreensaver/'
-],
+                          Default: \`PREFIX/lib/xscreensaver/'],
   [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes])
 
 if test x"$with_hackdir" = xyes; then
@@ -1836,21 +1837,21 @@ jurassic_gtk=no
 if test "$with_gtk" = yes; then
   have_gtk=no
   
-  # if the user specified --with-gtk=/foo/ then look in /foo/bin/
-  # for glib-config and gtk-config.
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for glib-config, gtk-config, and gnome-config.
   #
   gtk_path="$PATH"
 
   if test ! -z "$gtk_dir"; then
     # canonicalize slashes.
-    gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gtk_dir:$gtk_path"
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$foo:$gtk_path"
   fi
 
-  if test ! -z "gnome_dir"; then
+  if test ! -z "$gnome_dir"; then
     # canonicalize slashes.
-    gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
-    gtk_path="$gnome_dir:$gtk_path"
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    gtk_path="$foo:$gtk_path"
   fi
 
   AC_PATH_PROGS(glib_config,  glib12-config glib-config,,  $gtk_path)
@@ -1860,7 +1861,7 @@ if test "$with_gtk" = yes; then
     AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path)
   fi
 
-  if test -n "$glib_config" -a  -n "gtk_config" ; then
+  if test -n "$glib_config" -a  -n "$gtk_config" ; then
     have_gtk=yes
     if test "$with_gnome" = yes -a -n "$gnome_config" ; then
       have_gnome=yes
@@ -1901,7 +1902,7 @@ if test "$with_gtk" = yes; then
   # Check for Gnome Capplet support.
   #
   if test "$have_gnome" = yes -a "$have_gtk" = yes; then
-    gnome_config_libs="gtk capplet gnomeui xml gdk_pixbuf"
+    gnome_config_libs="gtk capplet gnomeui gdk_pixbuf"
     AC_MSG_CHECKING(for Gnome capplet includes)
     AC_CACHE_VAL(ac_cv_gnome_config_cflags,
       [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \
@@ -1978,7 +1979,7 @@ fi
 
 ###############################################################################
 #
-#       Check for -lxml (if we have Gtk)
+#       Check for -lxml
 #
 ###############################################################################
 
@@ -1990,6 +1991,17 @@ AC_ARG_WITH(xml,
                           the Gtk interface.],
 [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes])
 
+# if --with-xml=/directory/ was specified, remember that directory so that
+# we can also look for the `xml-config' program in that directory.
+case "$with_xml" in
+  /*)
+    xml_dir="$with_xml"
+    ;;
+  *)
+    xml_dir=""
+    ;;
+esac
+
 HANDLE_X_PATH_ARG(with_xml, --with-xml, XML)
 
 if test "$with_xml" != yes -a "$with_xml" != no ; then
@@ -1997,21 +2009,43 @@ if test "$with_xml" != yes -a "$with_xml" != no ; then
   exit 1
 fi
 
-if test "$have_gtk" != yes; then
-  # don't bother if no GTK
-  with_xml=no
-fi
-
 if test "$with_xml" = yes; then
   have_xml=no
 
-  # the XML stuff is likely to be in GTK paths.
-  ac_save_X_CFLAGS="$X_CFLAGS"
-  ac_save_X_LIBS="$X_LIBS"
-  X_CFLAGS="$X_CFLAGS $ac_gtk_config_cflags"
-  X_LIBS="$X_LIBS $ac_gtk_config_libs"
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for for xml-config.
+  #
+  xml_path="$PATH"
+
+  if test ! -z "$gtk_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    xml_path="$foo:$xml_path"
+  fi
+
+  if test ! -z "$gnome_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    xml_path="$foo:$xml_path"
+  fi
+
+  AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path)
 
+  # If we found the xml-config program, run it to get flags.
+  #
+  if test -n "$xml_config" ; then
+    AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags,
+                   [ac_cv_xml_config_cflags=`$xml_config --cflags`])
+    AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs,
+                   [ac_cv_xml_config_libs=`$xml_config --libs`])
+    ac_xml_config_cflags=$ac_cv_xml_config_cflags
+    ac_xml_config_libs=$ac_cv_xml_config_libs
+  fi
+
+  ac_save_xml_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags"
   AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes])
+  CPPFLAGS="$ac_save_xml_CPPFLAGS"
 
   if test "$have_xml" = yes; then
     # we have the header, now check for the library
@@ -2021,11 +2055,16 @@ if test "$with_xml" = yes; then
                    [have_xml=yes
                     xml_halfassed=no
                     XML_LIBS="-lxml"
-                    AC_DEFINE(HAVE_XML)])
+                    AC_DEFINE(HAVE_XML)],
+                   [true],
+                   $ac_xml_config_libs)
   fi
 
-  X_CFLAGS="$ac_save_X_CFLAGS"
-  X_LIBS="$ac_save_X_LIBS"
+  if test "$have_xml" = yes; then
+    INCLUDES="$INCLUDES $ac_xml_config_cflags"
+    GTK_LIBS="$GTK_LIBS $ac_xml_config_libs"
+    AC_DEFINE(HAVE_XML)
+  fi
 
 fi
 
@@ -2462,33 +2501,94 @@ AC_ARG_WITH(pixbuf,
   [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"],
   [with_gdk_pixbuf=yes])
 
+# if --with-pixbuf=/directory/ was specified, remember that directory so that
+# we can also look for the `gdk-pixbuf-config' program in that directory.
+case "$with_gdk_pixbuf" in
+  /*)
+    gdk_pixbuf_dir="$with_gdk_pixbuf"
+    ;;
+  *)
+    gdk_pixbuf_dir=""
+    ;;
+esac
+
 HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF)
 
+if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then
+  echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
+  exit 1
+fi
+
 if test "$with_gdk_pixbuf" = yes; then
+  have_gdk_pixbuf=no
 
-  if test "$have_gtk" = yes; then
+  # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then
+  # look in /foo/bin/ for for gdk-pixbuf-config.
+  #
+  gdk_pixbuf_path="$PATH"
 
-    ac_save_gdk_CPPFLAGS="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS $ac_gtk_config_cflags"
+  if test ! -z "$gtk_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'`
+    gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+  fi
 
+  if test ! -z "$gnome_dir"; then
+    # canonicalize slashes.
+    foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'`
+    gdk_pixbuf_path="$foo:$gdk_pixbuf_path"
+  fi
+
+  AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path)
+
+  # If we found the gdk-pixbuf-config program, run it to get flags.
+  #
+  if test -n "$gdk_pixbuf_config" ; then
+    AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags,
+               [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`])
+    AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs,
+               [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`])
+    ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
+    ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs
+  fi
+
+  ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags"
+
+  # check for header 1...
+  AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
+
+  # if that worked, check for header 2...
+  if test "$have_gdk_pixbuf" = yes; then
     have_gdk_pixbuf=no
-    AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes])
-    if test "$have_gdk_pixbuf" = yes; then
-      have_gdk_pixbuf=no
-      AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, [have_gdk_pixbuf=yes])
-    fi
+    AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, [have_gdk_pixbuf=yes])
+  fi
 
-    CPPFLAGS="$ac_save_gdk_CPPFLAGS"
+  CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS"
 
+  if test "$have_gdk_pixbuf" = yes; then
+    # we have the headers, now check for the libraries
+    have_gdk_pixbuf=no
+    gdk_pixbuf_halfassed=yes
+    # library 1...
+    AC_CHECK_X_LIB(gdk_pixbuf, gdk_pixbuf_new_from_file,
+                   [have_gdk_pixbuf=yes], [true],
+                   $ac_gdk_pixbuf_config_libs)
+    # library 2...
     if test "$have_gdk_pixbuf" = yes; then
-      AC_DEFINE(HAVE_GDK_PIXBUF)
-      XPM_LIBS="-lgdk_pixbuf -lgdk_pixbuf_xlib"
+      AC_CHECK_X_LIB(gdk_pixbuf_xlib, gdk_pixbuf_xlib_init,
+                     [have_gdk_pixbuf=yes
+                      gdk_pixbuf_halfassed=no],
+                     [true],
+                     $ac_gdk_pixbuf_config_libs)
     fi
   fi
 
-elif test "$with_gdk_pixbuf" != no; then
-  echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf"
-  exit 1
+  if test "$have_gdk_pixbuf" = yes; then
+    INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags"
+    XPM_LIBS="$ac_gdk_pixbuf_config_libs -lgdk_pixbuf -lgdk_pixbuf_xlib"
+    AC_DEFINE(HAVE_GDK_PIXBUF)
+  fi
 fi
 
 
@@ -2870,6 +2970,7 @@ fi
 
 # Now that we know whether we have Gnome, we can decide where the XML
 # config files get installed.
+#
 if test -z "$HACK_CONF_DIR" ; then
   if test -n "$GNOME_DATADIR" ; then
     HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers'
@@ -2878,6 +2979,21 @@ if test -z "$HACK_CONF_DIR" ; then
   fi
 fi
 
+
+
+# After computing $HACK_CONF_DIR, make sure $GTK_ICONDIR has a value
+# so that we know where to install the Gtk pixmaps.
+#
+if test -n "$GNOME_DATADIR" ; then
+  GTK_ICONDIR='$(GNOME_DATADIR)/pixmaps'
+elif test "$have_gtk" = yes; then
+  # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong...
+  GTK_ICONDIR='/usr/share/pixmaps'
+else
+  GTK_ICONDIR=''
+fi
+
+
 # canonicalize slashes.
 HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'`
 
@@ -2932,6 +3048,7 @@ AC_SUBST(GNOMEHELP_Y)
 AC_SUBST(GNOMEHELP_N)
 AC_SUBST(HACKDIR)
 AC_SUBST(GNOME_DATADIR)
+AC_SUBST(GTK_ICONDIR)
 AC_SUBST(HACK_CONF_DIR)
 
 APPDEFAULTS=$ac_x_app_defaults
@@ -3136,11 +3253,11 @@ if test "$have_motif" = yes -a "$have_gtk" = no ; then
 fi
 
 
-if test "$with_xpm_req" = yes ; then
+if test "$with_xpm_req" = yes -a "$have_xpm" = no; then
   warnL 'Use of XPM was requested, but it was not found.'
 fi
 
-if test "$with_gdk_pixbuf_req" = yes ; then
+if test "$with_gdk_pixbuf_req" = yes  -a "$have_gdk_pixbuf" = no; then
   warnL 'Use of GDK-Pixbuf was requested, but it was not found.'
 fi
 
@@ -3162,6 +3279,14 @@ if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then
     warnL 'The GDK-Pixbuf library was not found.'
   fi
 
+  if test "$gdk_pixbuf_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either GDK-Pixbuf is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+  fi
+
   echo ''
   warn2 'Some of the demos will not be as colorful as they'
   warn2 'could be.  You should consider installing Pixbuf or'
@@ -3392,12 +3517,11 @@ if test "$do_dir_warning" = yes; then
   echo "      will be installed in ${bindir}/."
   echo ""
   echo "      The various graphics demos (140+ different executables) will"
-  echo "      also be installed in ${HACKDIR}/."
+  echo "      be installed in ${HACKDIR}/."
   echo ""
-  echo "      If you would prefer the demos to be installed elsewhere"
-  echo "      (for example, in a dedicated directory) you should re-run"
-  echo "      configure with the --with-hackdir=DIR option.  For more"
-  echo "      information, run $0 --help."
+  echo "      If you would prefer the demos to be installed elsewhere,"
+  echo "      you should re-run configure with the --with-hackdir=DIR"
+  echo "      option.  For more information, run \`./configure --help'."
   warning=yes
 fi
 
index 563e9028ed356a17f4c1d829f3775f17fc5dd08f..2df4f3ea5dbdbf6d11e9deeaa2eb3981f1cd9538 100644 (file)
@@ -20,16 +20,16 @@ GNOME_DATADIR       = @GNOME_DATADIR@
 GNOME_CCDIR_1  = $(GNOME_DATADIR)/control-center/Desktop
 GNOME_CCDIR_2  = $(GNOME_DATADIR)/control-center/capplets
 GNOME_PANELDIR = $(GNOME_DATADIR)/gnome/apps/Settings/Desktop
-GNOME_ICONDIR  = $(GNOME_DATADIR)/pixmaps
 GNOME_BINDIR   = $(bindir)
 HACK_CONF_DIR  = @HACK_CONF_DIR@
+GTK_ICONDIR    = @GTK_ICONDIR@
 
 CC             = @CC@
 CFLAGS         = @CFLAGS@
 LDFLAGS                = @LDFLAGS@
 DEFS           = @DEFS@
 SUBP_DEFS      = $(DEFS) -DDEFAULT_PATH_PREFIX='"@HACKDIR@"'
-GTK_DEFS       = $(DEFS) -DDEFAULT_ICONDIR='"$(GNOME_ICONDIR)"'
+GTK_DEFS       = $(DEFS) -DDEFAULT_ICONDIR='"$(GTK_ICONDIR)"'
 CONF_DEFS      = -DHACK_CONFIGURATION_PATH='"$(HACK_CONF_DIR)"'
 
 LIBS           = @LIBS@
@@ -127,7 +127,7 @@ GL_LIBS             = @SAVER_GL_LIBS@
 
 ICON_SRC        = $(UTILS_SRC)/images
 LOGO           = $(ICON_SRC)/logo-50.xpm
-GNOME_ICONS     = $(ICON_SRC)/screensaver-*.xpm
+GTK_ICONS      = $(ICON_SRC)/screensaver-*.xpm
 
 DEMO_UTIL_SRCS = $(UTILS_SRC)/resources.c $(UTILS_SRC)/usleep.c \
                  $(UTILS_SRC)/visual.c
@@ -515,31 +515,31 @@ install-gnome:: screensaver-properties-capplet
 
 # xscreensaver.xpm
 install-gnome:: $(LOGO)
-       @if [ "$(GNOME_DATADIR)" != "" ]; then                                \
-           if [ ! -d "$(install_prefix)$(GNOME_ICONDIR)" ]; then              \
-             echo $(INSTALL_DIRS) "$(install_prefix)$(GNOME_ICONDIR)"        ;\
-                  $(INSTALL_DIRS) "$(install_prefix)$(GNOME_ICONDIR)"        ;\
+       @if [ "$(GTK_ICONDIR)" != "" ]; then                                  \
+           if [ ! -d "$(install_prefix)$(GTK_ICONDIR)" ]; then                \
+             echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_ICONDIR)"          ;\
+                  $(INSTALL_DIRS) "$(install_prefix)$(GTK_ICONDIR)"          ;\
            fi                                                                ;\
           target=xscreensaver.xpm                                           ;\
           echo $(INSTALL_DATA) $(LOGO)                                       \
-                 $(install_prefix)$(GNOME_ICONDIR)/$$target                 ;\
+                 $(install_prefix)$(GTK_ICONDIR)/$$target                   ;\
                $(INSTALL_DATA) $(LOGO)                                       \
-                 $(install_prefix)$(GNOME_ICONDIR)/$$target                 ;\
+                 $(install_prefix)$(GTK_ICONDIR)/$$target                   ;\
         fi
 
 # ../utils/images/screensaver-*.xpm
 install-gnome::
-       @if [ "$(GNOME_DATADIR)" != "" ]; then                                \
-           if [ ! -d "$(install_prefix)$(GNOME_ICONDIR)" ]; then              \
-             echo $(INSTALL_DIRS) "$(install_prefix)$(GNOME_ICONDIR)"        ;\
-                  $(INSTALL_DIRS) "$(install_prefix)$(GNOME_ICONDIR)"        ;\
+       @if [ "$(GTK_ICONDIR)" != "" ]; then                                  \
+           if [ ! -d "$(install_prefix)$(GTK_ICONDIR)" ]; then                \
+             echo $(INSTALL_DIRS) "$(install_prefix)$(GTK_ICONDIR)"          ;\
+                  $(INSTALL_DIRS) "$(install_prefix)$(GTK_ICONDIR)"          ;\
            fi                                                                ;\
-          for target in $(GNOME_ICONS) ; do                                  \
+          for target in $(GTK_ICONS) ; do                                    \
             dest=`echo $$target | sed 's@^.*/@@'`                           ;\
             echo $(INSTALL_DATA) $$target                                    \
-                 $(install_prefix)$(GNOME_ICONDIR)/$$dest                   ;\
+                 $(install_prefix)$(GTK_ICONDIR)/$$dest                     ;\
                  $(INSTALL_DATA) $$target                                    \
-                 $(install_prefix)$(GNOME_ICONDIR)/$$dest                   ;\
+                 $(install_prefix)$(GTK_ICONDIR)/$$dest                     ;\
           done                                                              ;\
         fi
 
@@ -563,19 +563,19 @@ uninstall-gnome::
 
 # xscreensaver.xpm
 uninstall-gnome::
-       @if [ "$(GNOME_DATADIR)" != "" ]; then                                \
+       @if [ "$(GTK_ICONDIR)" != "" ]; then                                  \
          target=xscreensaver.xpm                                            ;\
-         echo rm -f $(install_prefix)$(GNOME_ICONDIR)/$$target              ;\
-              rm -f $(install_prefix)$(GNOME_ICONDIR)/$$target              ;\
+         echo rm -f $(install_prefix)$(GTK_ICONDIR)/$$target                ;\
+              rm -f $(install_prefix)$(GTK_ICONDIR)/$$target                ;\
         fi
 
 # xscreensaver.xpm
 uninstall-gnome::
-       @if [ "$(GNOME_DATADIR)" != "" ]; then                                \
-          for target in $(GNOME_ICONS) ; do                                  \
+       @if [ "$(GTK_ICONDIR)" != "" ]; then                                  \
+          for target in $(GTK_ICONS) ; do                                    \
             dest=`echo $$target | sed 's@^.*/@@'`                           ;\
-            echo rm -f $(install_prefix)$(GNOME_ICONDIR)/$$dest             ;\
-                 rm -f $(install_prefix)$(GNOME_ICONDIR)/$$dest             ;\
+            echo rm -f $(install_prefix)$(GTK_ICONDIR)/$$dest               ;\
+                 rm -f $(install_prefix)$(GTK_ICONDIR)/$$dest               ;\
           done                                                              ;\
         fi
 
@@ -762,7 +762,8 @@ xscreensaver-command: $(CMD_OBJS)
 
 
 xscreensaver-demo: @PREFERRED_DEMO_PROGRAM@
-       $(INSTALL_PROGRAM) @PREFERRED_DEMO_PROGRAM@ $@
+       cp -p @PREFERRED_DEMO_PROGRAM@@EXEEXT@ $@@EXEEXT@
+#      $(INSTALL_PROGRAM) @PREFERRED_DEMO_PROGRAM@ $@
 
 xscreensaver-demo-Xm: $(DEMO_OBJS) $(MOTIF_OBJS)
        $(CC) $(LDFLAGS) -o $@ $(DEMO_OBJS) $(MOTIF_OBJS) $(LIBS) $(X_LIBS) \
index cf6cef1612f6f6d8c6da1e22465a499cb5021fa7..72f9ce0d7a993149f5d78d0dc39beaa6cfc25e05 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 4.01
-!                              24-Feb-2002
+!                              version 4.02
+!                              18-Mar-2002
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
                                  -ncolors 230                              \n\
 -                              juggle -root                                \n\
                                polyominoes -root                           \n\
-                               thornbird -root                             \n\
+-                              thornbird -root                             \n\
+                               fluidballs -root                            \n\
   color:                       bubbles -root                               \n\
   default-n:                   webcollage -root                            \n\
   default-n:  "WebCollage (whacked)"                                         \
 @GL_KLUDGE@ GL:                        boxed -root                                 \n\
 @GL_KLUDGE@ GL:                        glforestfire -root                          \n\
 @GL_KLUDGE@ GL:                        sballs -root                                \n\
+@GL_KLUDGE@ GL:                        cubenetic -root                             \n\
                                                                              \
 -                              xdaliclock -root -builtin3 -cycle           \n\
 - default-n:                   xearth -nofork -nostars -ncolors 50           \
@@ -615,6 +617,7 @@ XScreenSaver*doc.fontList:       *-helvetica-medium-r-*-*-*-100-*-*-*-iso8859-1
 *hacks.xfishtank.name:      XFishTank
 *hacks.electricsheep.name:  ElectricSheep
 *hacks.sphereEversion.name: SphereEversion
+*hacks.fluidballs.name:     FluidBalls
 
 ! obsolete, but still used by xscreensaver-demo-Xm.
 *hacks.documentation.isInstalled: True
index 68a28183b14995d6054a295f7c2b84dc58a7c76d..d00f9c00195c03355d7720030f064a66dd9a69b2 100644 (file)
                                  -ncolors 230                              \\n\
 -                              juggle -root                                \\n\
                                polyominoes -root                           \\n\
-                               thornbird -root                             \\n\
+-                              thornbird -root                             \\n\
+                               fluidballs -root                            \\n\
   color:                       bubbles -root                               \\n\
   default-n:                   webcollage -root                            \\n\
   default-n:  \"WebCollage (whacked)\"                                       \
           GL:                  boxed -root                                 \\n\
           GL:                  glforestfire -root                          \\n\
           GL:                  sballs -root                                \\n\
+          GL:                  cubenetic -root                             \\n\
                                                                              \
 -                              xdaliclock -root -builtin3 -cycle           \\n\
 - default-n:                   xearth -nofork -nostars -ncolors 50           \
 "*hacks.xfishtank.name:      XFishTank",
 "*hacks.electricsheep.name:  ElectricSheep",
 "*hacks.sphereEversion.name: SphereEversion",
+"*hacks.fluidballs.name:     FluidBalls",
 "*hacks.documentation.isInstalled: True",
index d51d1df7b3fe2e3282b8e2fbc51c32f274829130..02dad2ba03282455e4073837118c0b6b17cefb5f 100644 (file)
@@ -1671,10 +1671,15 @@ load_configurator_1 (const char *program, const char *arguments,
 {
   const char *dir = HACK_CONFIGURATION_PATH;
   int L = strlen (dir);
-  char *file = (char *) malloc (L + strlen (program) + 10);
+  char *file;
   char *s;
   FILE *f;
-  conf_data *data = (conf_data *) calloc (1, sizeof(*data));
+  conf_data *data;
+
+  if (L == 0) return 0;
+
+  file = (char *) malloc (L + strlen (program) + 10);
+  data = (conf_data *) calloc (1, sizeof(*data));
 
   strcpy (file, dir);
   if (file[L-1] != '/')
@@ -1703,7 +1708,12 @@ load_configurator_1 (const char *program, const char *arguments,
         fprintf (stderr, "%s: reading %s...\n", blurb(), file);
 
       res = fread (chars, 1, 4, f);
-      if (res <= 0) return 0;
+      if (res <= 0)
+        {
+          free (data);
+          data = 0;
+          goto DONE;
+        }
 
       ctxt = xmlCreatePushParserCtxt(NULL, NULL, chars, res, file);
       while ((res = fread(chars, 1, size, f)) > 0)
@@ -1748,6 +1758,9 @@ load_configurator_1 (const char *program, const char *arguments,
     }
 
   data->progname = strdup (program);
+
+ DONE:
+  free (file);
   return data;
 }
 
@@ -1848,7 +1861,9 @@ free_conf_data (conf_data *data)
     gtk_widget_destroy (data->widget);
 
   if (data->progname)
-    free (data->progname);;
+    free (data->progname);
+  if (data->description)
+    free (data->description);
 
   memset (data, ~0, sizeof(*data));
   free (data);
index 26c69db6791e52d827c1d40065c7ea31076d177a..dc6f46551d0e898c2ce1a003ae71b538d22d92f9 100644 (file)
@@ -1874,8 +1874,18 @@ populate_prefs_page (state *s)
   saver_preferences *p = &s->prefs;
   char str[100];
 
+  /* The file supports timeouts of less than a minute, but the GUI does
+     not, so throttle the values to be at least one minute (since "0" is
+     a bad rounding choice...)
+   */
+# define THROTTLE(NAME) if (p->NAME != 0 && p->NAME < 60000) p->NAME = 60000
+  THROTTLE (timeout);
+  THROTTLE (cycle);
+  THROTTLE (passwd_timeout);
+# undef THROTTLE
+
 # define FMT_MINUTES(NAME,N) \
-    sprintf (str, "%d", ((N) + 59) / (60 * 1000)); \
+    sprintf (str, "%d", (((N / 1000) + 59) / 60)); \
     gtk_entry_set_text (GTK_ENTRY (name_to_widget (s, (NAME))), str)
 
 # define FMT_SECONDS(NAME,N) \
@@ -2012,6 +2022,10 @@ populate_popup_window (state *s)
   screenhack *hack = (hack_number >= 0 ? p->screenhacks[hack_number] : 0);
   char *doc_string = 0;
 
+  /* #### not in Gtk 1.2
+  gtk_label_set_selectable (doc);
+   */
+
 # ifdef HAVE_XML
   if (s->cdata)
     {
@@ -2796,7 +2810,7 @@ launch_preview_subproc (state *s)
 {
   saver_preferences *p = &s->prefs;
   Window id;
-  char *new_cmd;
+  char *new_cmd = 0;
   pid_t forked;
   const char *cmd = s->desired_preview_cmd;
 
@@ -2808,7 +2822,7 @@ launch_preview_subproc (state *s)
   if (s->preview_suppressed_p)
     {
       kill_preview_subproc (s);
-      return;
+      goto DONE;
     }
 
   new_cmd = malloc (strlen (cmd) + 40);
@@ -2831,7 +2845,7 @@ launch_preview_subproc (state *s)
     {
       s->running_preview_error_p = True;
       clear_preview_window (s);
-      return;
+      goto DONE;
     }
 
   switch ((int) (forked = fork ()))
@@ -2842,7 +2856,8 @@ launch_preview_subproc (state *s)
         sprintf (buf, "%s: couldn't fork", blurb());
         perror (buf);
         s->running_preview_error_p = True;
-        return;
+        goto DONE;
+        break;
       }
     case 0:
       {
@@ -2876,6 +2891,10 @@ launch_preview_subproc (state *s)
     }
 
   schedule_preview_check (s);
+
+ DONE:
+  if (new_cmd) free (new_cmd);
+  new_cmd = 0;
 }
 
 
@@ -2902,6 +2921,11 @@ hack_environment (state *s)
   if (s->debug_p)
     fprintf (stderr, "%s: %s\n", blurb(), ndpy);
 
+  /* don't free(ndpy) -- some implementations of putenv (BSD 4.4, glibc
+     2.0) copy the argument, but some (libc4,5, glibc 2.1.2) do not.
+     So we must leak it (and/or the previous setting).  Yay.
+   */
+
   if (def_path && *def_path)
     {
       const char *opath = getenv("PATH");
@@ -2913,6 +2937,7 @@ hack_environment (state *s)
 
       if (putenv (npath))
        abort ();
+      /* do not free(npath) -- see above */
 
       if (s->debug_p)
         fprintf (stderr, "%s: added \"%s\" to $PATH\n", blurb(), def_path);
@@ -3139,7 +3164,7 @@ static void
 the_network_is_not_the_computer (state *s)
 {
   Display *dpy = GDK_DISPLAY();
-  char *rversion, *ruser, *rhost;
+  char *rversion = 0, *ruser = 0, *rhost = 0;
   char *luser, *lhost;
   char *msg = 0;
   struct passwd *p = getpwuid (getuid ());
@@ -3250,6 +3275,9 @@ the_network_is_not_the_computer (state *s)
   if (*msg)
     warning_dialog (s->toplevel_widget, msg, True, 1);
 
+  if (rversion) free (rversion);
+  if (ruser) free (ruser);
+  if (rhost) free (rhost);
   free (msg);
 }
 
@@ -3424,7 +3452,10 @@ main (int argc, char **argv)
   }
 
 #ifdef DEFAULT_ICONDIR  /* from -D on compile line */
-  add_pixmap_directory (DEFAULT_ICONDIR);
+  {
+    const char *dir = DEFAULT_ICONDIR;
+    if (*dir) add_pixmap_directory (dir);
+  }
 #endif
 
   /* This is gross, but Gtk understands --display and not -display...
index 277cfc3c21f27c67a0c15b63511a5bd32413097f..03890a909c3e58dbe4a059b36c8c734864a03162 100644 (file)
@@ -1,5 +1,5 @@
 /* lock.c --- handling the password dialog for locking-mode.
- * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -187,7 +187,7 @@ make_passwd_window (saver_info *si)
     pw->heading_label = s;
   }
 
-  pw->user_string = (p && p->pw_name ? p->pw_name : "???");
+  pw->user_string = strdup (p && p->pw_name ? p->pw_name : "???");
   pw->passwd_string = strdup("");
 
   f = get_string_resource ("passwd.headingFont", "Dialog.Font");
@@ -771,6 +771,9 @@ destroy_passwd_window (saver_info *si)
   Pixel white = WhitePixelOfScreen (ssi->screen);
   XEvent event;
 
+  memset (pw->typed_passwd, 0, sizeof(pw->typed_passwd));
+  memset (pw->passwd_string, 0, strlen(pw->passwd_string));
+
   if (pw->timer)
     XtRemoveTimeOut (pw->timer);
 
@@ -818,11 +821,15 @@ destroy_passwd_window (saver_info *si)
   if (pw->body_label)    free (pw->body_label);
   if (pw->user_label)    free (pw->user_label);
   if (pw->passwd_label)  free (pw->passwd_label);
+  if (pw->date_label)    free (pw->date_label);
+  if (pw->user_string)   free (pw->user_string);
+  if (pw->passwd_string) free (pw->passwd_string);
 
   if (pw->heading_font) XFreeFont (si->dpy, pw->heading_font);
   if (pw->body_font)    XFreeFont (si->dpy, pw->body_font);
   if (pw->label_font)   XFreeFont (si->dpy, pw->label_font);
   if (pw->passwd_font)  XFreeFont (si->dpy, pw->passwd_font);
+  if (pw->date_font)    XFreeFont (si->dpy, pw->date_font);
 
   if (pw->foreground != black && pw->foreground != white)
     XFreeColors (si->dpy, cmap, &pw->foreground, 1, 0L);
@@ -843,17 +850,23 @@ destroy_passwd_window (saver_info *si)
 
   if (pw->logo_pixmap)
     XFreePixmap (si->dpy, pw->logo_pixmap);
-  if (pw->logo_npixels && pw->logo_pixels)
-    XFreeColors (si->dpy, cmap, pw->logo_pixels, pw->logo_npixels, 0L);
   if (pw->logo_pixels)
-    free (pw->logo_pixels);
+    {
+      if (pw->logo_npixels)
+        XFreeColors (si->dpy, cmap, pw->logo_pixels, pw->logo_npixels, 0L);
+      free (pw->logo_pixels);
+      pw->logo_pixels = 0;
+      pw->logo_npixels = 0;
+    }
 
-  memset (pw, 0, sizeof(*pw));
-  free (pw);
+  if (pw->save_under)
+    XFreePixmap (si->dpy, pw->save_under);
 
   if (cmap)
     XInstallColormap (si->dpy, cmap);
 
+  memset (pw, 0, sizeof(*pw));
+  free (pw);
   si->pw_data = 0;
 }
 
index 324e31fd197188e3e87b5c9192893744f7951124..7083cfe487f41342c5c26ff1dd10518ceedcbdeb 100644 (file)
@@ -1,7 +1,7 @@
 /* passwd-pam.c --- verifying typed passwords with PAM
  * (Pluggable Authentication Modules.)
  * written by Bill Nottingham <notting@redhat.com> (and jwz) for
- * xscreensaver, Copyright (c) 1993-2001 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -212,11 +212,12 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
      far as PAM is concerned...)
    */
   {
-    const char *tty = ":0.0";
-    status = pam_set_item (pamh, PAM_TTY, strdup(tty));
+    char *tty = strdup (":0.0");
+    status = pam_set_item (pamh, PAM_TTY, tty);
     if (verbose_p)
       fprintf (stderr, "%s:   pam_set_item (p, PAM_TTY, \"%s\") ==> %d (%s)\n",
                blurb(), tty, status, PAM_STRERROR(pamh, status));
+    free (tty);
   }
 
   /* Try to authenticate as the current user.
@@ -263,8 +264,10 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
 
   /* If that didn't work, set the user to root, and try to authenticate again.
    */
-  c.user = "root";
-  status = pam_set_item (pamh, PAM_USER, strdup(c.user));
+  if (user) free (user);
+  user = strdup ("root");
+  c.user = user;
+  status = pam_set_item (pamh, PAM_USER, c.user);
   if (verbose_p)
     fprintf (stderr, "%s:   pam_set_item(p, PAM_USER, \"%s\") ==> %d (%s)\n",
              blurb(), c.user, status, PAM_STRERROR(pamh, status));
index b55334c936aad2c53157de05298cfece5c0feeee..9a9a4b8863b4efe628970853eaa0f4088f3e3d69 100644 (file)
@@ -1,5 +1,5 @@
 /* passwd.c --- verifying typed passwords with the OS.
- * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -23,6 +23,7 @@
 #endif
 
 extern char *blurb(void);
+extern void check_for_leaks (const char *where);
 
 
 /* blargh */
@@ -132,8 +133,12 @@ passwd_valid_p (const char *typed_passwd, Bool verbose_p)
   int i, j;
   for (i = 0; i < countof(methods); i++)
     {
-      if (methods[i].initted_p &&
-          methods[i].valid_p (typed_passwd, verbose_p))
+      int ok_p = (methods[i].initted_p &&
+                  methods[i].valid_p (typed_passwd, verbose_p));
+
+      check_for_leaks (methods[i].name);
+
+      if (ok_p)
         {
           /* If we successfully authenticated by method N, but attempting
              to authenticate by method N-1 failed, mention that (since if
index 46b93886211cc1cef9991d06950eeed1fe0e08e5..180dfca6478f31d4bd0bb06b7b83118efcf24994 100644 (file)
@@ -77,6 +77,8 @@ static void get_screenhacks (saver_preferences *p);
 static char *format_command (const char *cmd, Bool wrap_p);
 static void merge_system_screenhacks (saver_preferences *p,
                                       screenhack **system_list, int count);
+static void stop_the_insanity (saver_preferences *p);
+
 
 static char *
 chase_symlinks (const char *file)
@@ -216,6 +218,7 @@ get_byte_resource (char *name, char *class)
     LOSE:
       fprintf (stderr, "%s: %s must be a number of bytes, not \"%s\".\n",
                progname, name, s);
+      free (s);
       return 0;
     }
   s2++;
@@ -223,6 +226,7 @@ get_byte_resource (char *name, char *class)
   while (isspace(*s2)) s2++;
   if (*s2) goto LOSE;
 
+  free (s);
   return n;
 }
 
@@ -632,6 +636,11 @@ write_init_file (saver_preferences *p, const char *version_string,
 
   if (n2) name = n2;
 
+  /* Throttle the various timeouts to reasonable values before writing
+     the file to disk. */
+  stop_the_insanity (p);
+
+
   if (verbose_p)
     fprintf (stderr, "%s: writing \"%s\".\n", blurb(), name);
 
@@ -701,6 +710,7 @@ write_init_file (saver_preferences *p, const char *version_string,
        *ss++ = '\n';
        *ss = 0;
       }
+    free (hack_strings);
   }
 
   {
@@ -939,6 +949,7 @@ free_screenhack_list (screenhack **list, int count)
 }
 
 
+
 /* Populate `saver_preferences' with the contents of the resource database.
    Note that this may be called multiple times -- it is re-run each time
    the ~/.xscreensaver file is reloaded.
@@ -1043,43 +1054,7 @@ load_init_file (saver_preferences *p)
                                                     "Boolean");
   p->use_proc_interrupts = get_boolean_resource ("procInterrupts", "Boolean");
 
-  /* Throttle the various timeouts to reasonable values.
-   */
-  if (p->passwd_timeout <= 0) p->passwd_timeout = 30000;        /* 30 secs */
-  if (p->timeout < 10000) p->timeout = 10000;                   /* 10 secs */
-  if (p->cycle != 0 && p->cycle < 2000) p->cycle = 2000;        /*  2 secs */
-  if (p->pointer_timeout <= 0) p->pointer_timeout = 5000;       /*  5 secs */
-  if (p->notice_events_timeout <= 0)
-    p->notice_events_timeout = 10000;                           /* 10 secs */
-  if (p->fade_seconds <= 0 || p->fade_ticks <= 0)
-    p->fade_p = False;
-  if (! p->fade_p) p->unfade_p = False;
-
-  /* The DPMS settings may have the value 0.
-     But if they are negative, or are a range less than 10 seconds,
-     reset them to sensible defaults.  (Since that must be a mistake.)
-   */
-  if (p->dpms_standby != 0 &&
-      p->dpms_standby < 10 * 1000)
-    p->dpms_standby =  2 * 60 * 60 * 1000;                      /* 2 hours */
-  if (p->dpms_suspend != 0 &&
-      p->dpms_suspend < 10 * 1000)
-    p->dpms_suspend =  2 * 60 * 60 * 1000;                      /* 2 hours */
-  if (p->dpms_off != 0 &&
-      p->dpms_off < 10 * 1000)
-    p->dpms_off      = 4 * 60 * 60 * 1000;                      /* 4 hours */
-
-  if (p->dpms_standby == 0 &&     /* if *all* are 0, then DPMS is disabled */
-      p->dpms_suspend == 0 &&
-      p->dpms_off     == 0)
-    p->dpms_enabled_p = False;
-
-
-  p->watchdog_timeout = p->cycle * 0.6;
-  if (p->watchdog_timeout < 30000) p->watchdog_timeout = 30000;          /* 30 secs */
-  if (p->watchdog_timeout > 3600000) p->watchdog_timeout = 3600000; /*  1 hr */
-
-  get_screenhacks (p);
+  get_screenhacks (p);                /* Parse the "programs" resource. */
 
   p->selected_hack = get_integer_resource ("selected", "Integer");
   if (p->selected_hack < 0 || p->selected_hack >= p->screenhacks_count)
@@ -1091,6 +1066,7 @@ load_init_file (saver_preferences *p)
     else if (s && !strcasecmp (s, "blank")) p->mode = BLANK_ONLY;
     else if (s && !strcasecmp (s, "off"))   p->mode = DONT_BLANK;
     else                                    p->mode = RANDOM_HACKS;
+    if (s) free (s);
   }
 
   if (system_default_screenhack_count)  /* note: first_time is also true */
@@ -1110,6 +1086,10 @@ load_init_file (saver_preferences *p)
       p->timestamp_p = True;
       p->initial_delay = 0;
     }
+
+  /* Throttle the various timeouts to reasonable values after reading the
+     disk file. */
+  stop_the_insanity (p);
 }
 
 
@@ -1319,7 +1299,10 @@ make_hack_name (const char *shell_command)
   sprintf (res_name, "hacks.%s.name", s);              /* resource? */
   s2 = get_string_resource (res_name, res_name);
   if (s2)
-    return s2;
+    {
+      free (s);
+      return s2;
+    }
 
   for (s2 = s; *s2; s2++)      /* if it has any capitals, return it */
     if (*s2 >= 'A' && *s2 <= 'Z')
@@ -1481,9 +1464,51 @@ get_screenhacks (saver_preferences *p)
       start = end+1;
     }
 
+  free (d);
+
   if (p->screenhacks_count == 0)
     {
       free (p->screenhacks);
       p->screenhacks = 0;
     }
 }
+
+
+/* Make sure all the values in the preferences struct are sane.
+ */
+static void
+stop_the_insanity (saver_preferences *p)
+{
+  if (p->passwd_timeout <= 0) p->passwd_timeout = 30000;        /* 30 secs */
+  if (p->timeout < 15000) p->timeout = 15000;                   /* 15 secs */
+  if (p->cycle != 0 && p->cycle < 2000) p->cycle = 2000;        /*  2 secs */
+  if (p->pointer_timeout <= 0) p->pointer_timeout = 5000;       /*  5 secs */
+  if (p->notice_events_timeout <= 0)
+    p->notice_events_timeout = 10000;                           /* 10 secs */
+  if (p->fade_seconds <= 0 || p->fade_ticks <= 0)
+    p->fade_p = False;
+  if (! p->fade_p) p->unfade_p = False;
+
+  /* The DPMS settings may have the value 0.
+     But if they are negative, or are a range less than 10 seconds,
+     reset them to sensible defaults.  (Since that must be a mistake.)
+   */
+  if (p->dpms_standby != 0 &&
+      p->dpms_standby < 10 * 1000)
+    p->dpms_standby =  2 * 60 * 60 * 1000;                      /* 2 hours */
+  if (p->dpms_suspend != 0 &&
+      p->dpms_suspend < 10 * 1000)
+    p->dpms_suspend =  2 * 60 * 60 * 1000;                      /* 2 hours */
+  if (p->dpms_off != 0 &&
+      p->dpms_off < 10 * 1000)
+    p->dpms_off      = 4 * 60 * 60 * 1000;                      /* 4 hours */
+
+  if (p->dpms_standby == 0 &&     /* if *all* are 0, then DPMS is disabled */
+      p->dpms_suspend == 0 &&
+      p->dpms_off     == 0)
+    p->dpms_enabled_p = False;
+
+  p->watchdog_timeout = p->cycle * 0.6;
+  if (p->watchdog_timeout < 30000) p->watchdog_timeout = 30000;          /* 30 secs */
+  if (p->watchdog_timeout > 3600000) p->watchdog_timeout = 3600000; /*  1 hr */
+}
index 38bc4c8b4720fd0c7b2d2415d364e55da54abf0a..2ecd7cbb70671fbfc8c095c7f1b3ab0ba91739eb 100644 (file)
@@ -119,11 +119,15 @@ find_screensaver_window (Display *dpy, char **version)
 
       if (status == Success && type != None)
        {
+          Window ret = kids[i];
          if (version)
            *version = v;
-         return kids[i];
+          XFree (kids);
+         return ret;
        }
     }
+
+  if (kids) XFree (kids);
   return 0;
 }
 
@@ -132,6 +136,7 @@ static int
 send_xscreensaver_command (Display *dpy, Atom command, long arg,
                           Window *window_ret, char **error_ret)
 {
+  int status = -1;
   char *v = 0;
   Window window = find_screensaver_window (dpy, &v);
   XWindowAttributes xgwa;
@@ -148,15 +153,20 @@ send_xscreensaver_command (Display *dpy, Atom command, long arg,
       if (error_ret)
         {
           *error_ret = strdup (err);
-          return -1;
+          status = -1;
+          goto DONE;
         }
 
       if (command == XA_EXIT)
-        /* Don't print an error if xscreensaver is already dead. */
-        return 1;
+        {
+          /* Don't print an error if xscreensaver is already dead. */
+          status = 1;
+          goto DONE;
+        }
 
       fprintf (stderr, "%s: %s\n", progname, err);
-      return -1;
+      status = -1;
+      goto DONE;
     }
 
   /* Select for property change events, so that we can read the response. */
@@ -176,7 +186,9 @@ send_xscreensaver_command (Display *dpy, Atom command, long arg,
             *error_ret = strdup (err);
           else
             fprintf (stderr, "%s: %s\n", progname, err);
-         return -1;
+
+          status = -1;
+          goto DONE;
        }
 
       XGetClassHint(dpy, window, &hint);
@@ -188,7 +200,10 @@ send_xscreensaver_command (Display *dpy, Atom command, long arg,
             *error_ret = strdup (err);
           else
             fprintf (stderr, "%s: %s\n", progname, err);
-         return -1;
+
+          if (v) free (v);
+          status = -1;
+          goto DONE;
        }
 
       fprintf (stdout, "%s %s", hint.res_class, v);
@@ -225,7 +240,8 @@ send_xscreensaver_command (Display *dpy, Atom command, long arg,
                   fprintf (stdout, "\n");
                   fflush (stdout);
                   fprintf (stderr, "bad status format on root window.\n");
-                  return -1;
+                  status = -1;
+                  goto DONE;
                 }
                   
               blanked = (Atom) data[0];
@@ -286,12 +302,14 @@ send_xscreensaver_command (Display *dpy, Atom command, long arg,
              fprintf (stdout, "\n");
              fflush (stdout);
              fprintf (stderr, "no saver status on root window.\n");
-             return -1;
+              status = -1;
+              goto DONE;
            }
        }
 
       /* No need to read a response for these commands. */
-      return 1;
+      status = 1;
+      goto DONE;
     }
   else
     {
@@ -326,11 +344,17 @@ send_xscreensaver_command (Display *dpy, Atom command, long arg,
             *error_ret = strdup (err);
           else
             fprintf (stderr, "%s: %s\n", progname, err);
-         return -1;
+          status = -1;
+          goto DONE;
        }
     }
+
+  status = 0;
+
+ DONE:
+  if (v) free (v);
   XSync (dpy, 0);
-  return 0;
+  return status;
 }
 
 
index 0ae76a4a3dc1b59850cbc5bbcda8af663c6789e1..55c4e9be37398756e51e71b56ede4d3b1f00e4e8 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1991-2001 Jamie Zawinski <jwz@netscape.com>
+/* xscreensaver, Copyright (c) 1991-2002 Jamie Zawinski <jwz@netscape.com>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -645,6 +645,7 @@ destroy_splash_window (saver_info *si)
   
   if (sp->heading_label) free (sp->heading_label);
   if (sp->body_label)    free (sp->body_label);
+  if (sp->body2_label)   free (sp->body2_label);
   if (sp->demo_label)    free (sp->demo_label);
 #ifdef PREFS_BUTTON
   if (sp->prefs_label)   free (sp->prefs_label);
@@ -670,14 +671,17 @@ destroy_splash_window (saver_info *si)
 
   if (sp->logo_pixmap)
     XFreePixmap (si->dpy, sp->logo_pixmap);
-  if (sp->logo_npixels && sp->logo_pixels)
-    XFreeColors (si->dpy, cmap, sp->logo_pixels, sp->logo_npixels, 0L);
   if (sp->logo_pixels)
-    free (sp->logo_pixels);
+    {
+      if (sp->logo_npixels)
+        XFreeColors (si->dpy, cmap, sp->logo_pixels, sp->logo_npixels, 0L);
+      free (sp->logo_pixels);
+      sp->logo_pixels = 0;
+      sp->logo_npixels = 0;
+    }
 
   memset (sp, 0, sizeof(*sp));
   free (sp);
-
   si->sp_data = 0;
 }
 
index 62ae9ae9040281054a50711acfd5b0c5ae395a04..910d5cc92912bacc819fcbad128faff93a237981 100644 (file)
@@ -732,8 +732,8 @@ spawn_screenhack_1 (saver_screen_info *ssi, Bool first_time_p)
              */
              if (p->verbose_p)
                fprintf(stderr,
-                       "%s: no suitable visuals for these programs.\n",
-                       blurb());
+                     "%s: %d: no programs enabled, or no suitable visuals.\n",
+                       blurb(), ssi->number);
              return;
            }
          else
@@ -885,6 +885,11 @@ hack_environment (saver_info *si)
 
       if (putenv (npath))
        abort ();
+
+      /* don't free (npath) -- some implementations of putenv (BSD 4.4,
+         glibc 2.0) copy the argument, but some (libc4,5, glibc 2.1.2)
+         do not.  So we must leak it (and/or the previous setting). Yay.
+       */
     }
 #endif /* HAVE_PUTENV && DEFAULT_PATH_PREFIX */
 }
@@ -923,6 +928,7 @@ hack_subproc_environment (saver_screen_info *ssi)
 #ifdef HAVE_PUTENV
   if (putenv (ndpy))
     abort ();
+  /* do not free(ndpy) -- see above. */
 #endif /* HAVE_PUTENV */
 }
 
index 988b00126c7f411303a4a76c5d9fe207cfbfb32e..9ef2cfe190daeb7fd488bffc989975b5819b85f2 100644 (file)
@@ -52,11 +52,14 @@ void start_notice_events_timer (saver_info *si, Window w, Bool b) {}
 Bool handle_clientmessage (saver_info *si, XEvent *e, Bool u) { return False; }
 int BadWindow_ehandler (Display *dpy, XErrorEvent *error) { exit(1); }
 const char *signal_name(int signal) { return "???"; }
-void restore_real_vroot (saver_info *si) {}
+Bool restore_real_vroot (saver_info *si) { return False; }
 void store_saver_status (saver_info *si) {}
 void saver_exit (saver_info *si, int status, const char *core) { exit(status);}
 int move_mouse_grab (saver_info *si, Window to, Cursor c, int ts) { return 0; }
 int mouse_screen (saver_info *si) { return 0; }
+void check_for_leaks (const char *where) { }
+void exec_command (const char *shell, const char *command, int nice) { }
+void shutdown_stderr (saver_info *si) { }
 
 const char *blurb(void) { return progname; }
 Atom XA_SCREENSAVER, XA_DEMO, XA_PREFS;
index 79a0dfdf0d67830508b427bad7a73a44cee984d6..a401c38cd7aca45f7773882d54adebba4d3ab57a 100644 (file)
@@ -20,6 +20,7 @@
 #endif
 
 #include <stdio.h>
+#include <time.h>
 #include <sys/time.h>
 
 #include <X11/Xlib.h>
index 9f3877e5b07e0a4a230c79d759f0e8ef9e1e5c52..5e73d5b12134823b47769066cf35ce63ab7cd4cc 100644 (file)
@@ -1,6 +1,5 @@
 /* timers.c --- detecting when the user is idle, and other timer-related tasks.
- * xscreensaver, Copyright (c) 1991-1997, 1998
- *  Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -15,8 +14,6 @@
 # include "config.h"
 #endif
 
-/* #define DEBUG_TIMERS */
-
 #include <stdio.h>
 #include <X11/Xlib.h>
 #include <X11/Intrinsic.h>
@@ -85,11 +82,9 @@ schedule_wakeup_event (saver_info *si, Time when, Bool verbose_p)
   si->timer_id = XtAppAddTimeOut (si->app, when, idle_timer,
                                   (XtPointer) si);
 
-#ifdef DEBUG_TIMERS
   if (verbose_p)
     fprintf (stderr, "%s: starting idle_timer (%ld, %ld)\n",
              blurb(), when, si->timer_id);
-#endif /* DEBUG_TIMERS */
 }
 
 
@@ -142,7 +137,7 @@ notice_events (saver_info *si, Window window, Bool top_p)
    */
   XSelectInput (si->dpy, window, SubstructureNotifyMask | events);
 
-  if (top_p && p->verbose_p && (events & KeyPressMask))
+  if (top_p && p->debug_p && (events & KeyPressMask))
     {
       /* Only mention one window per tree (hack hack). */
       fprintf (stderr, "%s: %d: selected KeyPress on 0x%lX\n",
@@ -262,20 +257,16 @@ cycle_timer (XtPointer closure, XtIntervalId *id)
       si->cycle_id = XtAppAddTimeOut (si->app, how_long, cycle_timer,
                                       (XtPointer) si);
 
-# ifdef DEBUG_TIMERS
-      if (p->verbose_p)
+      if (p->debug_p)
         fprintf (stderr, "%s: starting cycle_timer (%ld, %ld)\n",
                  blurb(), how_long, si->cycle_id);
-# endif /* DEBUG_TIMERS */
     }
-# ifdef DEBUG_TIMERS
   else
     {
-      if (p->verbose_p)
+      if (p->debug_p)
         fprintf (stderr, "%s: not starting cycle_timer: how_long == %d\n",
                  blurb(), how_long);
     }
-# endif /* DEBUG_TIMERS */
 }
 
 
@@ -302,15 +293,13 @@ reset_timers (saver_info *si)
 
   if (si->timer_id)
     {
-#ifdef DEBUG_TIMERS
-      if (p->verbose_p)
+      if (p->debug_p)
         fprintf (stderr, "%s: killing idle_timer  (%ld, %ld)\n",
                  blurb(), p->timeout, si->timer_id);
-#endif /* DEBUG_TIMERS */
       XtRemoveTimeOut (si->timer_id);
     }
 
-  schedule_wakeup_event (si, p->timeout, p->verbose_p); /* sets si->timer_id */
+  schedule_wakeup_event (si, p->timeout, p->debug_p); /* sets si->timer_id */
 
   if (si->cycle_id) abort ();  /* no cycle timer when inactive */
 
@@ -367,8 +356,7 @@ check_pointer_timer (XtPointer closure, XtIntervalId *id)
 
       active_p = True;
 
-#ifdef DEBUG_TIMERS
-      if (p->verbose_p)
+      if (p->debug_p)
         {
           if (root_x == ssi->poll_mouse_last_root_x &&
               root_y == ssi->poll_mouse_last_root_y &&
@@ -401,8 +389,6 @@ check_pointer_timer (XtPointer closure, XtIntervalId *id)
             }
         }
 
-#endif /* DEBUG_TIMERS */
-
       si->last_activity_screen    = ssi;
       ssi->poll_mouse_last_root_x = root_x;
       ssi->poll_mouse_last_root_y = root_y;
@@ -415,11 +401,6 @@ check_pointer_timer (XtPointer closure, XtIntervalId *id)
       si->using_proc_interrupts &&
       proc_interrupts_activity_p (si))
     {
-# ifdef DEBUG_TIMERS
-      if (p->verbose_p)
-        fprintf (stderr, "%s: /proc/interrupts activity at %s.\n",
-                 blurb(), timestring());
-# endif /* DEBUG_TIMERS */
       active_p = True;
     }
 #endif /* HAVE_PROC_INTERRUPTS */
@@ -456,8 +437,7 @@ check_for_clock_skew (saver_info *si)
   time_t now = time ((time_t *) 0);
   long shift = now - si->last_wall_clock_time;
 
-#ifdef DEBUG_TIMERS
-  if (p->verbose_p)
+  if (p->debug_p)
     {
       int i = (si->last_wall_clock_time == 0 ? 0 : shift);
       fprintf (stderr,
@@ -465,7 +445,6 @@ check_for_clock_skew (saver_info *si)
                blurb(),
                (i / (60 * 60)), ((i / 60) % 60), (i % 60));
     }
-#endif /* DEBUG_TIMERS */
 
   if (si->last_wall_clock_time != 0 &&
       shift > (p->timeout / 1000))
@@ -616,7 +595,7 @@ sleep_until_idle (saver_info *si, Bool until_idle_p)
            is economical: for example, if the screensaver should come on in 5
            minutes, and the user has been idle for 2 minutes, then this
            timeout will go off no sooner than 3 minutes from now.  */
-        schedule_wakeup_event (si, p->timeout, p->verbose_p);
+        schedule_wakeup_event (si, p->timeout, p->debug_p);
 
       if (polling_mouse_position)
         /* Check to see if the mouse has moved, and set up a repeating timer
@@ -698,7 +677,7 @@ sleep_until_idle (saver_info *si, Bool until_idle_p)
                    yet been idle for long enough.  So re-signal the event.
                    */
                 if (polling_for_idleness)
-                  schedule_wakeup_event (si, p->timeout - idle, p->verbose_p);
+                  schedule_wakeup_event (si, p->timeout - idle, p->debug_p);
               }
          }
        break;
@@ -714,11 +693,7 @@ sleep_until_idle (saver_info *si, Bool until_idle_p)
        if (scanning_all_windows)
          {
             Window w = event.xcreatewindow.window;
-#ifdef DEBUG_TIMERS
-           start_notice_events_timer (si, w, p->verbose_p);
-#else  /* !DEBUG_TIMERS */
-           start_notice_events_timer (si, w, False);
-#endif /* !DEBUG_TIMERS */
+           start_notice_events_timer (si, w, p->debug_p);
          }
        break;
 
@@ -728,8 +703,7 @@ sleep_until_idle (saver_info *si, Bool until_idle_p)
       case ButtonRelease:
       case MotionNotify:
 
-#ifdef DEBUG_TIMERS
-       if (p->verbose_p)
+       if (p->debug_p)
          {
             Window root, window;
             int x, y;
@@ -772,7 +746,6 @@ sleep_until_idle (saver_info *si, Bool until_idle_p)
                   fprintf (stderr, " at %d,%d.\n", x, y);
               }
          }
-#endif /* DEBUG_TIMERS */
 
        /* If any widgets want to handle this event, let them. */
        dispatch_event (si, &event);
@@ -1036,8 +1009,8 @@ proc_interrupts_activity_p (saver_info *si)
   static char last_kbd_line[255] = { 0, };
   static char last_ptr_line[255] = { 0, };
   char new_line[sizeof(last_kbd_line)];
-  Bool got_kbd = False, kbd_diff = False;
-  Bool got_ptr = False, ptr_diff = False;
+  Bool checked_kbd = False, kbd_changed = False;
+  Bool checked_ptr = False, ptr_changed = False;
 
   if (!f0)
     {
@@ -1088,27 +1061,35 @@ proc_interrupts_activity_p (saver_info *si)
 
   while (fgets (new_line, sizeof(new_line)-1, f1))
     {
-      if (!got_kbd && strstr (new_line, "keyboard"))
+      if (!checked_kbd && strstr (new_line, "keyboard"))
         {
-          kbd_diff = (*last_kbd_line && !!strcmp (new_line, last_kbd_line));
+          kbd_changed = (*last_kbd_line && !!strcmp (new_line, last_kbd_line));
           strcpy (last_kbd_line, new_line);
-          got_kbd = True;
+          checked_kbd = True;
         }
-      else if (!got_ptr && strstr (new_line, "PS/2 Mouse"))
+      else if (!checked_ptr && strstr (new_line, "PS/2 Mouse"))
         {
-          ptr_diff = (*last_ptr_line && !!strcmp (new_line, last_ptr_line));
+          ptr_changed = (*last_ptr_line && !!strcmp (new_line, last_ptr_line));
           strcpy (last_ptr_line, new_line);
-          got_ptr = True;
+          checked_ptr = True;
         }
 
-      if (got_kbd && got_ptr)
+      if (checked_kbd && checked_ptr)
         break;
     }
 
-  if (got_kbd || got_ptr)
+  if (checked_kbd || checked_ptr)
     {
       fclose (f1);
-      return (kbd_diff || ptr_diff);
+
+      if (si->prefs.debug_p && (kbd_changed || ptr_changed))
+        fprintf (stderr, "%s: /proc/interrupts activity: %s\n",
+                 blurb(),
+                 ((kbd_changed && ptr_changed) ? "mouse and kbd" :
+                  kbd_changed ? "kbd" :
+                  ptr_changed ? "mouse" : "ERR"));
+
+      return (kbd_changed || ptr_changed);
     }
 
 
@@ -1173,19 +1154,15 @@ watchdog_timer (XtPointer closure, XtIntervalId *id)
 
       if (si->dbox_up_p)
         {
-#ifdef DEBUG_TIMERS
-          if (si->prefs.verbose_p)
+          if (si->prefs.debug_p)
             fprintf (stderr, "%s: dialog box is up: not raising screen.\n",
                      blurb());
-#endif /* DEBUG_TIMERS */
         }
       else
         {
-#ifdef DEBUG_TIMERS
-          if (si->prefs.verbose_p)
+          if (si->prefs.debug_p)
             fprintf (stderr, "%s: watchdog timer raising %sscreen.\n",
                      blurb(), (running_p ? "" : "and clearing "));
-#endif /* DEBUG_TIMERS */
 
           raise_window (si, True, True, running_p);
         }
@@ -1225,11 +1202,8 @@ reset_watchdog_timer (saver_info *si, Bool on_p)
       si->watchdog_id = XtAppAddTimeOut (si->app, p->watchdog_timeout,
                                         watchdog_timer, (XtPointer) si);
 
-#ifdef DEBUG_TIMERS
-      if (p->verbose_p)
+      if (p->debug_p)
        fprintf (stderr, "%s: restarting watchdog_timer (%ld, %ld)\n",
                 blurb(), p->watchdog_timeout, si->watchdog_id);
-#endif /* DEBUG_TIMERS */
-
     }
 }
index d6cb192ebb22c53f12f80baca33953f1cc073452..49db1ea7fd482b99f18d690f67a006ff0456a5d8 100644 (file)
@@ -758,7 +758,7 @@ saver_exit (saver_info *si, int status, const char *dump_core_reason)
       if (bugp)
        fprintf(real_stderr,
                "%s: see http://www.jwz.org/xscreensaver/bugs.html\n"
-               "\t\tfor bug reporting information.\n\n",
+               "\t\t\tfor bug reporting information.\n\n",
                blurb());
 
 # if defined(HAVE_GETCWD)
@@ -884,6 +884,7 @@ store_saver_status (saver_info *si)
                    XA_SCREENSAVER_STATUS,
                    XA_INTEGER, 32, PropModeReplace,
                    (unsigned char *) status, size);
+  free (status);
 }
 
 
index 207f2fa97119790550706a1551946ebbc8e3e146..8e98bf48e86c739d68a39117fdad8c42ad618146 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "24-Feb-2002 (4.01)" "X Version 11"
+.TH XScreenSaver 1 "18-Mar-2002 (4.02)" "X Version 11"
 .SH NAME
 xscreensaver-command - control a running xscreensaver process
 .SH SYNOPSIS
index a275a2caaee1a615924a407dd7f504f8b7f1a91a..cd860888cd238d3c8973bed5059cc6df980835fc 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "24-Feb-2002 (4.01)" "X Version 11"
+.TH XScreenSaver 1 "18-Mar-2002 (4.02)" "X Version 11"
 .SH NAME
 xscreensaver-demo - interactively control the background xscreensaver daemon
 .SH SYNOPSIS
index 2da17d5958522b907faeff90deed9f1583398441..36de487e0e7d04e608731572b95f375d0cdc3ff7 100755 (executable)
@@ -29,7 +29,10 @@ use strict;
 
 use POSIX;
 use Fcntl;
-use Fcntl ':mode';
+
+# use Fcntl ':mode';   # Perl 5.6ism?
+use POSIX ':fcntl_h';  # more portable?
+
 
 my $progname = $0; $progname =~ s@.*/@@g;
 my $version = q{ $Revision: 1.8 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
index ca0e92cb7e17b03b688c29569a54c1601e28db9a..8a9fbc9e231c39a745904287e9c819d0761d5eb6 100644 (file)
@@ -1,4 +1,4 @@
-.TH XScreenSaver 1 "24-Feb-2002 (4.01)" "X Version 11"
+.TH XScreenSaver 1 "18-Mar-2002 (4.02)" "X Version 11"
 .SH NAME
 xscreensaver-getimage-file - put a randomly-selected image on the root window
 .SH SYNOPSIS
index 2f05128288a41cd3c83b6852b538701e03d9c8d4..6a674b2131c843c20f2062610b169b1e8fea7864 100644 (file)
@@ -1,4 +1,4 @@
-.TH XScreenSaver 1 "24-Feb-2002 (4.01)" "X Version 11"
+.TH XScreenSaver 1 "18-Mar-2002 (4.02)" "X Version 11"
 .SH NAME
 xscreensaver-getimage-video - put a video frame on the root window
 .SH SYNOPSIS
index 46e3019eee924e3024348b265e53402e49870395..04b752011fd63c872545b53b1faf25e9f5264697 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2001 by Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2001, 2002 by Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -295,6 +295,12 @@ get_image (Screen *screen, Window window, Bool verbose_p)
 
         if (putenv (ndpy))
           abort ();
+
+        /* don't free (ndpy) -- some implementations of putenv (BSD
+           4.4, glibc 2.0) copy the argument, but some (libc4,5, glibc
+           2.1.2) do not.  So we must leak it (and/or the previous
+           setting).  Yay.
+         */
       }
 # endif /* HAVE_PUTENV */
 
index 682c35128d9e3705e09ca92cb5d9e27d0984f824..6e95c3d9e21f5e75d1428d76b633058af79f1b97 100644 (file)
@@ -1,4 +1,4 @@
-.TH XScreenSaver 1 "24-Feb-2002 (4.01)" "X Version 11"
+.TH XScreenSaver 1 "18-Mar-2002 (4.02)" "X Version 11"
 .SH NAME
 xscreensaver-getimage - put some randomly-selected image on the root window
 .SH SYNOPSIS
index 628bcf1d442b4090899e397bed66979fbddf7de6..0e60dfcc8599da4afdf6b01ab7c8e2eea4004eff 100644 (file)
@@ -484,8 +484,6 @@ lock_initialization (saver_info *si, int *argc, char **argv)
       si->nolock_reason = "running under GDM";
     }
 #endif /* NO_LOCKING */
-
-  hack_uid (si);
 }
 
 
@@ -500,13 +498,17 @@ connect_to_server (saver_info *si, int *argc, char **argv)
   char *d = getenv ("DISPLAY");
   if (!d || !*d)
     {
-      char ndpy[] = "DISPLAY=:0.0";
+      char *ndpy = strdup("DISPLAY=:0.0");
       /* if (si->prefs.verbose_p) */      /* sigh, too early to test this... */
         fprintf (stderr,
                  "%s: warning: $DISPLAY is not set: defaulting to \"%s\".\n",
                  blurb(), ndpy+8);
       if (putenv (ndpy))
         abort ();
+      /* don't free (ndpy) -- some implementations of putenv (BSD 4.4,
+         glibc 2.0) copy the argument, but some (libc4,5, glibc 2.1.2)
+         do not.  So we must leak it (and/or the previous setting). Yay.
+       */
     }
 #endif /* HAVE_PUTENV */
 
@@ -953,7 +955,13 @@ main_loop (saver_info *si)
   while (1)
     {
       Bool was_locked = False;
+
+      if (p->verbose_p)
+       fprintf (stderr, "%s: awaiting idleness.\n", blurb());
+
+      check_for_leaks ("unblanked A");
       sleep_until_idle (si, True);
+      check_for_leaks ("unblanked B");
 
       if (p->verbose_p)
        {
@@ -1059,7 +1067,10 @@ main_loop (saver_info *si)
       ok_to_unblank = True;
       do {
 
+        check_for_leaks ("blanked A");
        sleep_until_idle (si, False);           /* until not idle */
+        check_for_leaks ("blanked B");
+
        maybe_reload_init_file (si);
 
 #ifndef NO_LOCKING
@@ -1181,9 +1192,6 @@ main_loop (saver_info *si)
           }
         XSync (si->dpy, False);
       }
-
-      if (p->verbose_p)
-       fprintf (stderr, "%s: awaiting idleness.\n", blurb());
     }
 }
 
@@ -1954,3 +1962,20 @@ display_is_on_console_p (saver_info *si)
     }
   return !not_on_console;
 }
+
+
+/* Do a little bit of heap introspection...
+ */
+void
+check_for_leaks (const char *where)
+{
+#ifdef HAVE_SBRK
+  static unsigned long last_brk = 0;
+  int b = (unsigned long) sbrk(0);
+  if (last_brk && last_brk < b)
+    fprintf (stderr, "%s: %s: brk grew by %luK.\n",
+             blurb(), where,
+             (((b - last_brk) + 1023) / 1024));
+  last_brk = b;
+#endif /* HAVE_SBRK */
+}
index 41b1d718f5fef7ac20002a8cf0ec52e17f4e4ddc..94a0d0cd2a276f97d67db2a20427f900555b767c 100644 (file)
@@ -417,6 +417,7 @@ extern Bool window_exists_p (Display *dpy, Window window);
 extern char *timestring (void);
 extern Bool display_is_on_console_p (saver_info *si);
 extern Visual *get_best_gl_visual (saver_screen_info *ssi);
+extern void check_for_leaks (const char *where);
 
 extern Atom XA_VROOT, XA_XSETROOT_ID, XA_ESETROOT_PMAP_ID, XA_XROOTPMAP_ID;
 extern Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_ID;
index 93d9adf3f4679c42882ca4526940d5fd7261ec40..ee49dd9fc057ea148d4c4e5ce50aa22ae2fe6e5a 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "24-Feb-2002 (4.01)" "X Version 11"
+.TH XScreenSaver 1 "18-Mar-2002 (4.02)" "X Version 11"
 .SH NAME
 xscreensaver - extensible screen saver framework, plus locking
 .SH SYNOPSIS
@@ -845,17 +845,26 @@ lock command.
 I understand that KDE has invented their own wrapper around xscreensaver,
 that is inferior to 
 .BR xscreensaver-demo (1)
-in any number of ways.  I've never actually seen it.  Presumably, there is
-some way to turn off KDE's screensaver framework, and make it so that the
-usual
+in any number of ways.  I've never actually seen it, but I'm told that
+this is the way you disable it:
+.RS 4
+.TP 3
+\fB1: Switch off KDE's screen saver.\fP
+Open the ``\fIControl Center\fP'' and
+select the ``\fILook and Feel / Screensaver\fP'' page.
+Turn off the ``\fIEnable Screensaver\fP'' checkbox.
+.TP 3
+\fB2: Add xscreensaver to your startup programs.\fP
+Create a file in your \fI~/.kde2/Autostart/\fP directory
+called \fIlaunch-xscreensaver\fP.  Make that file be executable,
+and contain a single line: \fI``xscreensaver\fP''.
+.RE
+.PP
+Now use xscreensaver normally, controlling it via the usual
 .BR xscreensaver-demo (1)
 and
 .BR xscreensaver-command (1)
-mechanisms are used, in a similar way to how one can reconfigure CDE and
-VUE environments, above.
-
-But I don't know how.  If you do, please let me know, and I'll document
-it here.
+mechanisms.
 .SH ADDING TO MENUS
 The
 .BR xscreensaver-command (1)
index 6dabdb2d156f9f3942ed070abbce2358f23a64ca..f2afcee755011f33289f5bb6f9b62d7f5ac53af4 100644 (file)
@@ -1,5 +1,5 @@
 /* xset.c --- interacting with server extensions and the builtin screensaver.
- * xscreensaver, Copyright (c) 1991-1998 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -223,16 +223,11 @@ disable_builtin_screensaver (saver_info *si, Bool unblank_screen_p)
       desired_prefer_blank != current_prefer_blank ||
       desired_allow_exp != current_allow_exp)
     {
-      if (p->verbose_p && unblank_screen_p)
-        /* Used to print this all the time, but really, nobody cares.
-           Now only print it when verbose. */
-       fprintf (stderr,
-                "%s disabling server builtin screensaver.\n"
-                "%s: you can re-enable it with \"xset s on\".\n",
-                blurb(), blurb());
-
       if (p->verbose_p)
-       fprintf (stderr, "%s: (xset s %d %d; xset s %s; xset s %s)\n", blurb(),
+       fprintf (stderr,
+                 "%s: disabling server builtin screensaver:\n"
+                 "%s:  (xset s %d %d; xset s %s; xset s %s)\n",
+                 blurb(), blurb(),
                 desired_server_timeout, desired_server_interval,
                 (desired_prefer_blank ? "blank" : "noblank"),
                 (desired_allow_exp ? "expose" : "noexpose"));
index 008ec75d7fba548fede3b025cf92e6201ca91b7e..4f902f99dc10bb92d443a60720a37ae91387dfef 100644 (file)
@@ -94,7 +94,7 @@ SRCS          = attraction.c blitspin.c bouboule.c braid.c bubbles.c \
                  nerverot.c xrayswarm.c hyperball.c zoom.c whirlwindwarp.c \
                  rotzoomer.c whirlygig.c speedmine.c vermiculate.c \
                  xpm-pixmap.c webcollage-helper.c twang.c apollonian.c \
-                 euler2d.c juggle.c polyominoes.c thornbird.c
+                 euler2d.c juggle.c polyominoes.c thornbird.c fluidballs.c
 SCRIPTS                = vidwhacker webcollage
 
 OBJS           = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
@@ -117,7 +117,7 @@ OBJS                = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
                  nerverot.o xrayswarm.o hyperball.o zoom.o whirlwindwarp.o \
                  rotzoomer.o whirlygig.o speedmine.o vermiculate.o \
                  xpm-pixmap.o webcollage-helper.o twang.o apollonian.o \
-                 euler2d.o juggle.o polyominoes.o thornbird.o
+                 euler2d.o juggle.o polyominoes.o thornbird.o fluidballs.o
 
 NEXES          = attraction blitspin bouboule braid bubbles decayscreen deco \
                  drift flag flame forest vines galaxy grav greynetic halo \
@@ -133,7 +133,7 @@ NEXES               = attraction blitspin bouboule braid bubbles decayscreen deco \
                  xsublim ccurve blaster bumps ripples xteevee xspirograph \
                  nerverot xrayswarm hyperball zoom whirlwindwarp rotzoomer \
                  whirlygig speedmine vermiculate twang apollonian euler2d \
-                 juggle polyominoes thornbird \
+                 juggle polyominoes thornbird  fluidballs \
                  @JPEG_EXES@
 SEXES          = sonar
 JPEG_EXES      = webcollage-helper
@@ -280,9 +280,9 @@ install-xml:
         fi ;                                                           \
         files=`cd $(srcdir)/config/ ; echo README $(STAR).xml` ;       \
         for file in $$files ; do                                       \
-          echo $(INSTALL_DATA) config/$$file                           \
+          echo $(INSTALL_DATA) $(srcdir)/config/$$file                 \
            $(install_prefix)$(HACK_CONF_DIR)/$$file ;                  \
-         $(INSTALL_DATA) config/$$file                                 \
+         $(INSTALL_DATA) $(srcdir)/config/$$file                       \
            $(install_prefix)$(HACK_CONF_DIR)/$$file ;                  \
        done
 
@@ -665,6 +665,9 @@ vermiculate:        vermiculate.o   $(HACK_OBJS) $(COL)
 twang:         twang.o         $(HACK_OBJS) $(GRAB) $(SHM)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(GRAB) $(SHM) $(HACK_LIBS)
 
+fluidballs:    fluidballs.o    $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+
 
 # The rules for those hacks which follow the `xlockmore' API.
 #
@@ -878,8 +881,8 @@ flag.o: $(srcdir)/xpm-pixmap.h
 flag.o: $(srcdir)/images/bob.xbm
 flame.o: $(srcdir)/screenhack.h
 flame.o: ../config.h
-forest.o: $(srcdir)/xlockmore.h
 forest.o: ../config.h
+forest.o: $(srcdir)/xlockmore.h
 forest.o: $(srcdir)/xlockmoreI.h
 forest.o: $(srcdir)/screenhack.h
 vines.o: $(srcdir)/xlockmore.h
@@ -1093,6 +1096,7 @@ bsod.o: $(srcdir)/xpm-pixmap.h
 bsod.o: $(srcdir)/images/amiga.xpm
 bsod.o: $(srcdir)/images/atari.xbm
 bsod.o: $(srcdir)/images/mac.xbm
+bsod.o: $(srcdir)/images/macbomb.xbm
 crystal.o: $(srcdir)/xlockmore.h
 crystal.o: ../config.h
 crystal.o: $(srcdir)/xlockmoreI.h
@@ -1213,4 +1217,6 @@ thornbird.o: $(srcdir)/xlockmore.h
 thornbird.o: ../config.h
 thornbird.o: $(srcdir)/xlockmoreI.h
 thornbird.o: $(srcdir)/screenhack.h
+fluidballs.o: $(srcdir)/screenhack.h
+fluidballs.o: ../config.h
 
index 8178dd4656328398c9eeb7e5dcdb0f053bfcab51..e516c813587fbb70ca10bae7711d34726614f72b 100644 (file)
@@ -27,6 +27,7 @@
 #include "images/amiga.xpm"
 #include "images/atari.xbm"
 #include "images/mac.xbm"
+#include "images/macbomb.xbm"
 
 
 static int
@@ -194,7 +195,7 @@ bsod_sleep(Display *dpy, int seconds)
 
 
 static Bool
-windows (Display *dpy, Window window, int delay, Bool w95p)
+windows (Display *dpy, Window window, int delay, int which)
 {
   XGCValues gcv;
   XWindowAttributes xgwa;
@@ -261,18 +262,34 @@ windows (Display *dpy, Window window, int delay, Bool w95p)
    "contact your system administrator or technical support group."
      );
 
-  if (!get_boolean_resource((w95p? "doWindows" : "doNT"), "DoWindows"))
+  const char *w2ka =
+    ("*** STOP: 0x000000D1 (0xE1D38000,0x0000001C,0x00000000,0xF09D42DA)\n"
+     "DRIVER_IRQL_NOT_LESS_OR_EQUAL \n"
+     "\n"
+    "*** Address F09D42DA base at F09D4000, DateStamp 39f459ff - CRASHDD.SYS\n"
+     "\n"
+     "Beginning dump of physical memory\n");
+  const char *w2kb =
+    ("Physical memory dump complete. Contact your system administrator or\n"
+     "technical support group.\n");
+
+  if (which < 0 || which > 2) abort();
+
+  if (!get_boolean_resource((which == 0 ? "doWindows" :
+                             which == 1 ? "doNT" :
+                                          "doWin2K"),
+                            "DoWindows"))
     return False;
 
   XGetWindowAttributes (dpy, window, &xgwa);
 
   fontname = get_string_resource ((xgwa.height > 600
-                                  ? (w95p
-                                     ? "windows95.font2"
-                                     : "windowsNT.font2")
-                                  : (w95p
-                                     ? "windows95.font"
-                                     : "windowsNT.font")),
+                                  ? (which == 0 ? "windows95.font2" :
+                                      which == 1 ? "windowsNT.font2" :
+                                                   "windows2K.font2")
+                                  : (which == 0 ? "windows95.font" :
+                                     which == 1 ? "windowsNT.font" :
+                                                   "windows2K.font")),
                                  "Windows.Font");
   if (!fontname || !*fontname) fontname = (char *)def_font;
   font = XLoadQueryFont (dpy, fontname);
@@ -282,14 +299,14 @@ windows (Display *dpy, Window window, int delay, Bool w95p)
     free (fontname);
 
   gcv.font = font->fid;
-  gcv.foreground = get_pixel_resource((w95p
-                                      ? "windows95.foreground"
-                                      : "windowsNT.foreground"),
+  gcv.foreground = get_pixel_resource((which == 0 ? "windows95.foreground" :
+                                      which == 1 ? "windowsNT.foreground" :
+                                                    "windows2K.foreground"),
                                      "Windows.Foreground",
                                      dpy, xgwa.colormap);
-  gcv.background = get_pixel_resource((w95p
-                                      ? "windows95.background"
-                                      : "windowsNT.background"),
+  gcv.background = get_pixel_resource((which == 0 ? "windows95.background" :
+                                      which == 1 ? "windowsNT.background" :
+                                                    "windows2K.background"),
                                      "Windows.Background",
                                      dpy, xgwa.colormap);
   XSetWindowBackground(dpy, window, gcv.background);
@@ -297,11 +314,22 @@ windows (Display *dpy, Window window, int delay, Bool w95p)
 
   gc = XCreateGC(dpy, window, GCFont|GCForeground|GCBackground, &gcv);
 
-  if (w95p)
+  if (which == 0)
     draw_string(dpy, window, gc, &gcv, font,
                0, 0, xgwa.width, xgwa.height, w95, 0);
-  else
+  else if (which == 1)
     draw_string(dpy, window, gc, &gcv, font, 0, 0, 10, 10, wnt, 750);
+  else
+    {
+      int line_height = font->ascent + font->descent + 1;
+      int x = 20;
+      int y = (xgwa.height / 4);
+
+      draw_string(dpy, window, gc, &gcv, font, x, y, 10, 10, w2ka, 750);
+      y += line_height * 6;
+      bsod_sleep(dpy, 4);
+      draw_string(dpy, window, gc, &gcv, font, x, y, 10, 10, w2kb, 750);
+    }
 
   XFreeGC(dpy, gc);
   XSync(dpy, False);
@@ -1142,6 +1170,59 @@ macsbug (Display *dpy, Window window, int delay)
   return True;
 }
 
+static Bool
+mac1 (Display *dpy, Window window, int delay)
+{
+  XGCValues gcv;
+  XWindowAttributes xgwa;
+  GC gc;
+  Pixmap pixmap = 0;
+  int pix_w = macbomb_width;
+  int pix_h = macbomb_height;
+
+  if (!get_boolean_resource("doMac1", "DoMac1"))
+    return False;
+
+  XGetWindowAttributes (dpy, window, &xgwa);
+
+  gcv.foreground = get_pixel_resource("mac1.foreground", "Mac.Foreground",
+                                     dpy, xgwa.colormap);
+  gcv.background = get_pixel_resource("mac1.background", "Mac.Background",
+                                     dpy, xgwa.colormap);
+  XSetWindowBackground(dpy, window, gcv.background);
+  XClearWindow(dpy, window);
+
+  gc = XCreateGC(dpy, window, GCForeground|GCBackground, &gcv);
+
+  pixmap = XCreatePixmapFromBitmapData(dpy, window, (char *) macbomb_bits,
+                                      macbomb_width, macbomb_height,
+                                      gcv.foreground,
+                                      gcv.background,
+                                      xgwa.depth);
+
+  {
+    int x = (xgwa.width - pix_w) / 2;
+    int y = (xgwa.height - pix_h) / 2;
+    if (y < 0) y = 0;
+    XFillRectangle (dpy, window, gc, 0, 0, xgwa.width, xgwa.height);
+    XSync(dpy, False);
+    if (bsod_sleep(dpy, 1))
+      goto DONE;
+    XCopyArea(dpy, pixmap, window, gc, 0, 0, pix_w, pix_h, x, y);
+  }
+
+ DONE:
+  XFreeGC(dpy, gc);
+  XFreePixmap(dpy, pixmap);
+  XSync(dpy, False);
+  bsod_sleep(dpy, delay);
+  XClearWindow(dpy, window);
+  return True;
+}
+
+
+
+
 \f
 /* blit damage
  *
@@ -1211,11 +1292,13 @@ blitdamage (Display *dpy, Window window, int delay)
              chunk_w, chunk_h,
              x, y);
 
-    bsod_sleep(dpy, 0);
+    if (bsod_sleep(dpy, 0))
+      goto DONE;
   }
 
   bsod_sleep(dpy, delay);
 
+ DONE:
   XFreeGC(dpy, gc0);
 
   return True;
@@ -1452,29 +1535,35 @@ sparc_solaris (Display* dpy, Window window, int delay)
   ts = make_solaris_console (dpy, window);
 
   solaris_puts (ts, msg1, 0);
-  bsod_sleep (dpy, 3);
+  if (bsod_sleep (dpy, 3))
+    goto DONE;
 
   solaris_puts (ts, msg2, 0);
-  bsod_sleep (dpy, 2);
+  if (bsod_sleep (dpy, 2))
+    goto DONE;
 
   for (i = 1; i <= 100; ++i)
     {
       sprintf(buf, "\b\b\b\b\b\b\b\b\b\b\b%3d%% done", i);
       solaris_puts(ts, buf, 0);
-      usleep(100000);
+      if (bsod_sleep (dpy, -1))
+        goto DONE;
     }
 
   solaris_puts (ts, msg3, 0);
-  bsod_sleep (dpy, 2);
+  if (bsod_sleep (dpy, 2))
+    goto DONE;
 
   solaris_puts (ts, msg4, 0);
-  bsod_sleep(dpy, 3);
+  if (bsod_sleep(dpy, 3))
+    goto DONE;
 
   XFillRectangle (ts->dpy, ts->window, ts->gc, 0, 0,
                   ts->width, ts->height);
 
   bsod_sleep (dpy, 3);
 
+ DONE:
   free_solaris_console (ts);
 
   return True;
@@ -1488,11 +1577,13 @@ char *defaults [] = {
 
   "*doWindows:            True",
   "*doNT:                 True",
+  "*doWin2K:              True",
   "*doAmiga:              True",
   "*doMac:                True",
-  "*doAtari:              False",      /* boring */
   "*doMacsBug:            True",
+  "*doMac1:               True",
   "*doSCO:                True",
+  "*doAtari:              False",      /* boring */
   "*doBSD:                False",      /* boring */
   "*doSparcLinux:         False",      /* boring */
   "*doBlitDamage:          True",
@@ -1523,6 +1614,9 @@ char *defaults [] = {
   ".MacsBug.background:           White",
   ".MacsBug.borderColor:   #AAAAAA",
 
+  ".mac1.foreground:      Black",
+  ".mac1.background:      White",
+
   ".SCO.font:             -*-courier-bold-r-*-*-*-120-*-*-m-*-*-*",
   ".SCO.font2:            -*-courier-bold-r-*-*-*-140-*-*-m-*-*-*",
   ".SCO.foreground:       White",
@@ -1552,6 +1646,8 @@ XrmOptionDescRec options [] = {
   { "-no-windows",     ".doWindows",           XrmoptionNoArg,  "False" },
   { "-nt",             ".doNT",                XrmoptionNoArg,  "True"  },
   { "-no-nt",          ".doNT",                XrmoptionNoArg,  "False" },
+  { "-2k",             ".doWin2K",             XrmoptionNoArg,  "True"  },
+  { "-no-2k",          ".doWin2K",             XrmoptionNoArg,  "False" },
   { "-amiga",          ".doAmiga",             XrmoptionNoArg,  "True"  },
   { "-no-amiga",       ".doAmiga",             XrmoptionNoArg,  "False" },
   { "-mac",            ".doMac",               XrmoptionNoArg,  "True"  },
@@ -1594,20 +1690,22 @@ screenhack (Display *dpy, Window window)
   while (1)
     {
       Bool did;
-      do {  i = (random() & 0xFF) % 11; } while (i == j);
+      do {  i = (random() & 0xFF) % 13; } while (i == j);
       switch (i)
        {
-       case 0: did = windows(dpy, window, delay, True); break;
-       case 1: did = windows(dpy, window, delay, False); break;
-       case 2: did = amiga(dpy, window, delay); break;
-       case 3: did = mac(dpy, window, delay); break;
-       case 4: did = macsbug(dpy, window, delay); break;
-       case 5: did = sco(dpy, window, delay); break;
-       case 6: did = sparc_linux(dpy, window, delay); break;
-       case 7: did = bsd(dpy, window, delay); break;
-       case 8: did = atari(dpy, window, delay); break;
-       case 9: did = blitdamage(dpy, window, delay); break;
-       case 10: did = sparc_solaris(dpy, window, delay); break;
+       case 0: did = windows(dpy, window, delay, 0); break;
+       case 1: did = windows(dpy, window, delay, 1); break;
+       case 2: did = windows(dpy, window, delay, 2); break;
+       case 3: did = amiga(dpy, window, delay); break;
+       case 4: did = mac(dpy, window, delay); break;
+       case 5: did = macsbug(dpy, window, delay); break;
+       case 6: did = mac1(dpy, window, delay); break;
+       case 7: did = sco(dpy, window, delay); break;
+       case 8: did = sparc_linux(dpy, window, delay); break;
+       case 9: did = bsd(dpy, window, delay); break;
+       case 10: did = atari(dpy, window, delay); break;
+       case 11: did = blitdamage(dpy, window, delay); break;
+       case 12: did = sparc_solaris(dpy, window, delay); break;
        default: abort(); break;
        }
       loop++;
index 3c64cbd853375efea85f995f3784b624f228bd94..98c0f9644a89ba6b51b21d41124728be4f10e90d 100644 (file)
@@ -67,15 +67,17 @@ Notable X resources supported include the following, which control which
 hacks are displayed and which aren't.
 .BR doWindows ,
 .BR doNT ,
+.BR doWin2K ,
 .BR doAmiga ,
 .BR doMac ,
 .BR doMacsBug ,
 .BR doSCO ,
 .BR doAtari ,
-.BR doBlitDamage ,
+.BR doBSD ,
 .BR doSparcLinux ,
+.BR doBlitDamage ,
 and
-.BR doSSolaris .
+.BR doSolaris .
 Each of these is a Boolean resource, they all default to true, except for
 doSparcLinux and doAtari, which are turned off by default, because they're
 really not all that interesting looking unless you're a fan of those systems.
index 5eedaf7c107c23586c6728f77e545c5e080d5aa1..8718bfdab9ee6314df1ef32590feec1002e89a32 100644 (file)
@@ -1,4 +1,4 @@
-/* Bumps, Copyright (c) 1999 Shane Smit <blackend@inconnect.com>
+/* Bumps, Copyright (c) 2002 Shane Smit <CodeWeaver@DigitalLoom.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -8,7 +8,7 @@
  * software for any purpose.  It is provided "as is" without express or
  * implied warranty.
  *
- * Module: "Bumps.cpp"
+ * Module: "bumps.c"
  * Tab Size: 4
  *
  * Description:
@@ -21,6 +21,7 @@
  * Modification History:
  *  [10/01/99] - Shane Smit: Creation
  *  [10/08/99] - Shane Smit: Port to C. (Ick)
+ *  [03/08/02] - Shane Smit: New movement code.
  */
 
 
@@ -53,7 +54,7 @@ void CreateSpotLight( SSpotLight *pSpotLight, uint16_ iDiameter, uint16_ nColorC
                                pSpotLight->aLightMap[ ( ( iHeight + (pSpotLight->nDiameter/2) ) * pSpotLight->nDiameter ) + iWidth + (pSpotLight->nDiameter/2) ] = (uint8_)nDelta;
                }
 
-       /* The actual lightmap... 1/2 of the entire lightmap. */
+       /* The actual lightmap... Use 1/4 to save time within the loop. */
        pSpotLight->nRadius = pSpotLight->nDiameter / 4;
 
        for( iHeight=-pSpotLight->nRadius; iHeight<pSpotLight->nRadius; iHeight++ )
@@ -64,59 +65,48 @@ void CreateSpotLight( SSpotLight *pSpotLight, uint16_ iDiameter, uint16_ nColorC
                                pSpotLight->aLightMap[ ( ( iHeight + (pSpotLight->nDiameter/2) ) * pSpotLight->nDiameter ) + iWidth + (pSpotLight->nDiameter/2) ] = (uint8_)nDelta;
                }
                
-       CreateTables( pSpotLight );
-
        pSpotLight->nRadius = pSpotLight->nDiameter / 2;        /* Now set the radius back to what it should be. */
-       pSpotLight->nAngleX = RANDOM() % pSpotLight->nDegreeCount;
-       pSpotLight->nAngleY = RANDOM() % pSpotLight->nDegreeCount;
-       pSpotLight->nVelocityX = ( RANDOM() % 3 ) + 1;
-       pSpotLight->nVelocityY = ( RANDOM() % 3 ) + 1;
+       pSpotLight->nAccelX = 0;
+       pSpotLight->nAccelY = 0;
+       pSpotLight->nVelocityX = ( RANDOM() % 2 ) ? pSpotLight->nVelocityMax : -pSpotLight->nVelocityMax;
+       pSpotLight->nVelocityY = ( RANDOM() % 2 ) ? pSpotLight->nVelocityMax : -pSpotLight->nVelocityMax;
 }
 
 
-void CreateTables( SSpotLight *pSpotLight )
+void CalcLightPos( SBumps *pBumps )
 {
-       double nUnit;
-       uint16_ iDegree;
-       
-       pSpotLight->nDegreeCount = get_integer_resource( "degrees", "Integer" );
-       if( pSpotLight->nDegreeCount < 180 ) pSpotLight->nDegreeCount = 180;    /* Less than 180 will show trails in higher resolutions. */
-#ifdef VERBOSE
-       printf( "%s: Using a %d degree circle.\n", progclass, pSpotLight->nDegreeCount );
-#endif
-
-       pSpotLight->aSinTable = calloc( pSpotLight->nDegreeCount, sizeof(double) );
-
-       /* This funtion builds the Sine Lookup Tables. */
-       nUnit = (double)( PI * 2.0F ) / (double)( pSpotLight->nDegreeCount );
-
-       for( iDegree=0; iDegree<pSpotLight->nDegreeCount; iDegree++)
-               pSpotLight->aSinTable[ iDegree ] = sin( nUnit * (double)iDegree );
-}
+       SSpotLight *pSpotLight = &pBumps->SpotLight;
+       float nGravity;
 
+       /* X */
+       if( pSpotLight->nXPos < pSpotLight->nDiameter * 1 )                                                                     nGravity = 1.0f;
+       else if( pSpotLight->nXPos > pBumps->iWinWidth - ( pSpotLight->nDiameter * 1 ) )        nGravity = -1.0f;
+       else                                                                                                                                                            nGravity = ( ( RANDOM() % 201 ) / 100.0f ) - 1.0f;
+               
+       pSpotLight->nAccelX += nGravity * ( pSpotLight->nAccelMax / 10.0f );
+       if( pSpotLight->nAccelX < -pSpotLight->nAccelMax )              pSpotLight->nAccelX = -pSpotLight->nAccelMax;
+       else if( pSpotLight->nAccelX > pSpotLight->nAccelMax )  pSpotLight->nAccelX = pSpotLight->nAccelMax;
 
-void CalcLightPos( SSpotLight *pSpotLight, uint16_ *pXPos, uint16_ *pYPos )
-{
-       pSpotLight->nVelocityX += ( RANDOM() % 2 ) ? 0.05F : -0.05F;
-       if( pSpotLight->nVelocityX < 1 )                pSpotLight->nVelocityX = 1;
-       else if( pSpotLight->nVelocityX > 3 )   pSpotLight->nVelocityX = 3;
+       pSpotLight->nVelocityX += pSpotLight->nAccelX;
+       if( pSpotLight->nVelocityX < -pSpotLight->nVelocityMax )                pSpotLight->nVelocityX = -pSpotLight->nVelocityMax;
+       else if( pSpotLight->nVelocityX > pSpotLight->nVelocityMax )    pSpotLight->nVelocityX = pSpotLight->nVelocityMax;
 
-       pSpotLight->nVelocityX += ( RANDOM() % 2 ) ? 0.05F : -0.05F;
-       if( pSpotLight->nVelocityY < 1 )                pSpotLight->nVelocityX = 1;
-       else if( pSpotLight->nVelocityY > 3 )   pSpotLight->nVelocityX = 3;
-       
-    pSpotLight->nAngleX += pSpotLight->nVelocityX;
-    if( pSpotLight->nAngleX >= pSpotLight->nDegreeCount )      pSpotLight->nAngleX -= pSpotLight->nDegreeCount;
+       pSpotLight->nXPos += pSpotLight->nVelocityX;
 
-    pSpotLight->nAngleY += pSpotLight->nVelocityY;
-    if( pSpotLight->nAngleY >= pSpotLight->nDegreeCount )      pSpotLight->nAngleY -= pSpotLight->nDegreeCount;
+       /* Y */
+       if( pSpotLight->nYPos < pSpotLight->nDiameter * 1 )                                                                     nGravity = 1.0f;
+       else if( pSpotLight->nYPos > pBumps->iWinHeight - ( pSpotLight->nDiameter * 1 ) )       nGravity = -1.0f;
+       else                                                                                                                                                            nGravity = ( ( RANDOM() % 201 ) / 100.0f ) - 1.0f;
+               
+       pSpotLight->nAccelY += nGravity * ( pSpotLight->nAccelMax / 10.0f );
+       if( pSpotLight->nAccelY < -pSpotLight->nAccelMax )              pSpotLight->nAccelY = -pSpotLight->nAccelMax;
+       else if( pSpotLight->nAccelY > pSpotLight->nAccelMax )  pSpotLight->nAccelY = pSpotLight->nAccelMax;
 
-    *pXPos = (uint16_)( ( pSpotLight->iWinXCenter - pSpotLight->nRadius ) * pSpotLight->aSinTable[ (uint16_)pSpotLight->nAngleX ] ) + pSpotLight->iWinXCenter;
-    *pYPos = (uint16_)( ( pSpotLight->iWinYCenter - pSpotLight->nRadius ) * pSpotLight->aSinTable[ (uint16_)pSpotLight->nAngleY ] ) + pSpotLight->iWinYCenter;
+       pSpotLight->nVelocityY += pSpotLight->nAccelY;
+       if( pSpotLight->nVelocityY < -pSpotLight->nVelocityMax )                pSpotLight->nVelocityY = -pSpotLight->nVelocityMax;
+       else if( pSpotLight->nVelocityY > pSpotLight->nVelocityMax )    pSpotLight->nVelocityY = pSpotLight->nVelocityMax;
 
-       /* Offset to upper left hand corner. */
-       *pXPos -= pSpotLight->nRadius;
-       *pYPos -= pSpotLight->nRadius;
+       pSpotLight->nYPos += pSpotLight->nVelocityY;
 }
 
 
@@ -131,8 +121,10 @@ void CreateBumps( SBumps *pBumps, Display *pNewDisplay, Window NewWin )
        XGetWindowAttributes( pNewDisplay, NewWin, &XWinAttribs );
        pBumps->iWinWidth = XWinAttribs.width;
        pBumps->iWinHeight = XWinAttribs.height;
-       pBumps->SpotLight.iWinXCenter = XWinAttribs.width / 2;
-       pBumps->SpotLight.iWinYCenter = XWinAttribs.height / 2;
+       pBumps->SpotLight.nXPos = XWinAttribs.width / 2.0f;
+       pBumps->SpotLight.nYPos = XWinAttribs.height / 2.0f;
+       pBumps->SpotLight.nVelocityMax = ( ( XWinAttribs.width < XWinAttribs.height ) ? XWinAttribs.width : XWinAttribs.height ) / 128.0f;
+       pBumps->SpotLight.nAccelMax = pBumps->SpotLight.nVelocityMax / 10.0f;
        pBumps->pDisplay = pNewDisplay;
        pBumps->Win = NewWin;
 
@@ -179,6 +171,14 @@ void SetPalette( SBumps *pBumps, XWindowAttributes *pXWinAttribs )
        Color.red = RANDOM() % 0xFFFF; 
        Color.green = RANDOM() % 0xFFFF;
        Color.blue = RANDOM() % 0xFFFF;
+       
+       /* Make one color full intesity to avoid dark spotlights.       */
+       switch( RANDOM() % 3 )
+       {
+               case 0: Color.red       = 0xFFFF;       break;
+               case 1: Color.green     = 0xFFFF;       break;
+               case 2: Color.blue      = 0xFFFF;       break;
+       }
 
        if( strcasecmp( sColor, "random" ) && !XParseColor( pBumps->pDisplay, pXWinAttribs->colormap, sColor, &Color ) )
                fprintf( stderr, "%s: color %s not found in database. Choosing random...\n", progname, sColor );
@@ -310,7 +310,11 @@ void Execute( SBumps *pBumps )
        uint8_ *pLOffset;
        int16_ nX, nY;
        uint16_ nColor;
-       CalcLightPos( &pBumps->SpotLight, &nLightXPos, &nLightYPos );
+       CalcLightPos( pBumps );
+       
+       /* Offset to upper left hand corner. */
+       nLightXPos = pBumps->SpotLight.nXPos - pBumps->SpotLight.nRadius;
+       nLightYPos = pBumps->SpotLight.nYPos - pBumps->SpotLight.nRadius;
 
        for( iHeight=nLightYPos, iLightHeight=0; iLightHeight<pBumps->SpotLight.nDiameter; iHeight++, iLightHeight++ )
        {
@@ -392,9 +396,5 @@ void screenhack( Display *pDisplay, Window Win )
 }
 
  
-/*
- * End of Module: "Bumps.cpp"
- */
-
 /* vim: ts=4
  */
index f5e8c29213c6746cbb059a89a16ff46fdae7771f..120be96102a2fb322dcc87bd532c6f3ec5e97aba 100644 (file)
@@ -1,4 +1,4 @@
-/* Bumps, Copyright (c) 1999 Shane Smit <blackend@inconnect.com>
+/* Bumps, Copyright (c) 2001 Shane Smit <CodeWeaver@DigitalLoom.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  * Tab Size: 4
  *
  * Description:
- *  Header file for module "Bumps.cpp"
+ *  Header file for module "Bumps.c"
  *
  * Modification History:
  *  [10/01/99] - Shane Smit: Creation
  *  [10/08/99] - Shane Smit: Port to C. (Ick)
+ *  [03/08/02] - Shane Smit: New movement code.
  */
 
 
@@ -31,7 +32,6 @@
 
 /* Defines: */
 /* #define VERBOSE */
-#define PI             3.141592654
 #define RANDOM() ((int) (random() & 0X7FFFFFFFL))
 
 typedef signed char            int8_;
@@ -49,7 +49,6 @@ char *progclass = "Bumps";
 char *defaults [] = {
   ".background: black",
   ".foreground: white",
-  "*degrees:   360",
   "*color:             random",
   "*colorcount:        64",
   "*delay:             50000",
@@ -62,7 +61,6 @@ char *defaults [] = {
 };
 
 XrmOptionDescRec options [] = {
-  { "-degrees",                ".degrees",             XrmoptionSepArg, 0 },
   { "-color",          ".color",               XrmoptionSepArg, 0 },
   { "-colorcount",     ".colorcount",  XrmoptionSepArg, 0 },
   { "-delay",          ".delay",               XrmoptionSepArg, 0 },
@@ -76,20 +74,18 @@ XrmOptionDescRec options [] = {
  * a member of TBumps. */
 typedef struct
 {
-       uint16_ nDegreeCount;
-       double *aSinTable;
-
        uint8_ *aLightMap;
        uint16_ nDiameter, nRadius;
-       float nAngleX, nAngleY;         /* Spotlight's movement direction. */
+       float nAccelX, nAccelY;
+       float nAccelMax;
        float nVelocityX, nVelocityY;
-       uint16_ iWinXCenter, iWinYCenter;
+       float nVelocityMax;
+       float nXPos, nYPos;
 } SSpotLight;
 
 void CreateSpotLight( SSpotLight *, uint16_, uint16_ );
 void CreateTables( SSpotLight * );
-void CalcLightPos( SSpotLight *, uint16_ *, uint16_ * );
-void DestroySpotLight( SSpotLight *pSpotLight ) { free( pSpotLight->aLightMap ); free( pSpotLight->aSinTable ); }
+void DestroySpotLight( SSpotLight *pSpotLight ) { free( pSpotLight->aLightMap ); }
 
 
 /* The entire program's operation is contained within this structure. */
@@ -121,9 +117,5 @@ void SoftenBumpMap( SBumps * );
 #endif /* _BUMPS_H */
 
 
-/*
- * End of Module: "Bumps.h"
- */
-
 /* vim: ts=4
  */
index 27fc3d7149362d91fbfd30d75f3d64d4d3b58919..7f4f7ee96f774d6fed549be7d7fff2d7a1c62003 100644 (file)
@@ -6,8 +6,8 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BOUBOULE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BRAID.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BSOD.C
-$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUBBLES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUBBLES-DEFAULT.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUBBLES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUMPS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) CCURVE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) COMPASS.C
@@ -28,6 +28,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAG.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAME.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLOW.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLUIDBALLS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FOREST.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GALAXY.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GOOP.C
@@ -53,8 +54,8 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LMORPH.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LOOP.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MAZE.C
-$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE2.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE2.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOUNTAIN.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MUNCH.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) NERVEROT.C
index 27fc3d7149362d91fbfd30d75f3d64d4d3b58919..7f4f7ee96f774d6fed549be7d7fff2d7a1c62003 100644 (file)
@@ -6,8 +6,8 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BOUBOULE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BRAID.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BSOD.C
-$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUBBLES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUBBLES-DEFAULT.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUBBLES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) BUMPS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) CCURVE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) COMPASS.C
@@ -28,6 +28,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAG.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLAME.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLOW.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLUIDBALLS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FOREST.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GALAXY.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GOOP.C
@@ -53,8 +54,8 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LMORPH.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) LOOP.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MAZE.C
-$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE2.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOIRE2.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MOUNTAIN.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) MUNCH.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) NERVEROT.C
index 5f4ca9a4ddf87bbf401964a2384e670668800fd1..8475692b567e9bacbb2535d06d381c67c41f6f40 100644 (file)
@@ -4,8 +4,8 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
-                              version 4.01
-                               24-Feb-2002
+                              version 4.02
+                               18-Mar-2002
 
                      http://www.jwz.org/xscreensaver/
 
index 69debf0fba8bf18c3a052986ba01b809a9b323c0..ed9d10c6c70598b60b0fa3931e3995bf263fca13 100644 (file)
 
   <hgroup>
    <vgroup>
-     <boolean id="windows"    _label="Windows"     arg-unset="-no-windows"/>
-     <boolean id="mac"        _label="MacOS"       arg-unset="-no-mac"/>
-     <boolean id="amiga"      _label="AmigaDOS"    arg-unset="-no-amiga"/>
-     <boolean id="bsd"        _label="BSD"         arg-set="-bsd"/>
-     <boolean id="sparclinux" _label="Sparc Linux" arg-set="-sparclinux"/>
+     <boolean id="windows"    _label="Windows"      arg-unset="-no-windows"/>
+     <boolean id="mac"        _label="Sad Mac"      arg-unset="-no-mac"/>
+     <boolean id="mac1"       _label="Mac Bomb"     arg-unset="-no-mac1"/>
+     <boolean id="amiga"      _label="AmigaDOS"     arg-unset="-no-amiga"/>
+     <boolean id="bsd"        _label="BSD"          arg-set="-bsd"/>
+     <boolean id="sparclinux" _label="Sparc Linux"  arg-set="-sparclinux"/>
    </vgroup>
    <vgroup>
-     <boolean id="nt"         _label="Windows NT"  arg-unset="-no-nt"/>
-     <boolean id="macsbug"    _label="MacsBug"     arg-unset="-no-macsbug"/>
-     <boolean id="atari"      _label="Atari"       arg-set="-atari"/>
-     <boolean id="sco"        _label="SCO"         arg-unset="-no-sco"/>
-     <boolean id="solaris"    _label="Solaris"     arg-unset="-no-solaris"/>
+     <boolean id="nt"         _label="Windows NT"   arg-unset="-no-nt"/>
+     <boolean id="2k"         _label="Windows 2000" arg-unset="-no-2k"/>
+     <boolean id="macsbug"    _label="MacsBug"      arg-unset="-no-macsbug"/>
+     <boolean id="atari"      _label="Atari"        arg-set="-atari"/>
+     <boolean id="sco"        _label="SCO"          arg-unset="-no-sco"/>
+     <boolean id="solaris"    _label="Solaris"      arg-unset="-no-solaris"/>
    </vgroup>
   </hgroup>
   <boolean id="blitdamage" _label="NCD X Terminal" arg-unset="-no-blitdamage"/>
diff --git a/hacks/config/cubenetic.xml b/hacks/config/cubenetic.xml
new file mode 100644 (file)
index 0000000..3be42f5
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="cubenetic" _label="Cubenetic">
+
+  <command arg="-root"/>
+
+  <number id="speed" type="slider" arg="-delay %"
+          _label="Speed" _low-label="Slow" _high-label="Fast"
+          low="0" high="50000" default="30000"
+          convert="invert"/>
+
+  <number id="count" type="slider" arg="-count %"
+          _label="Boxes" _low-label="Few" _high-label="Many"
+          low="1" high="20" default="5"/>
+
+  <boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
+
+  <select id="rotation">
+    <option id="no"  _label="Don't Rotate" arg-set="-no-spin"/>
+    <option id="x"   _label="Rotate around X axis" arg-set="-spin X"/>
+    <option id="y"   _label="Rotate around Y axis" arg-set="-spin Y"/>
+    <option id="z"   _label="Rotate around Z axis" arg-set="-spin Z"/>
+    <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
+    <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
+    <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
+    <option id="xyz" _label="Rotate around all three axes"/>
+  </select>
+
+  <select id="render">
+    <option id="wire"     _label="Display Wireframe" arg-set="-wireframe"/>
+    <option id="textured" _label="Display Surface Patterns"/>
+    <option id="solid"    _label="Display Solid Colors" arg-set="-no-texture"/>
+  </select>
+
+  <number id="wave-speed" type="slider" arg="-wave-speed %"
+          _label="Surface Pattern Speed" _low-label="Slow" _high-label="Fast"
+          low="5" high="150" default="80"/>
+
+  <number id="wave-radius" type="slider" arg="-wave-radius %"
+          _label="Surface Pattern Overlap"
+          _low-label="Small" _high-label="Large"
+          low="5" high="600" default="512"/>
+
+  <number id="waves" type="slider" arg="-waves %"
+          _label="Surface Pattern Complexity"
+          _low-label="Low" _high-label="High"
+          low="1" high="20" default="3"/>
+
+  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+
+  <_description>
+Draws a pulsating set of overlapping boxes with ever-chaning blobby
+patterns undulating across their surfaces.  It's sort of a cubist Lavalite.
+Written by Jamie Zawinski.
+  </_description>
+</screensaver>
index 42a75f2bc71c8b912e79c98efd255710d593ce3b..4534d2418bf61605fc79181aa8b8fd23e2138d02 100644 (file)
@@ -6,7 +6,7 @@
 
   <!-- #### -no-rotate -->
   <!-- #### -no-roll -->
-  <!-- #### -no-bounce -->
+  <!-- #### -no-wander -->
   <!-- #### -no-texture -->
   <!-- #### -no-stars -->
 
index c8c5662120cb11eafd088881a35903c102068a6a..c50953b13e0759ae767b0dea2458f544be488f98 100644 (file)
@@ -36,6 +36,8 @@
 
   <boolean id="tight"   _label="Allow Tight Turns" arg-set="-tightturns"/>
 
+  <boolean id="db"      _label="Double Buffer" arg-set="-db"/>
+
   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
 
   <!-- #### -no-rotatepipes -->
diff --git a/hacks/fluidballs.c b/hacks/fluidballs.c
new file mode 100644 (file)
index 0000000..528c999
--- /dev/null
@@ -0,0 +1,676 @@
+/* fluidballs, Copyright (c) 2000 by Peter Birtles <peter@bqdesign.com.au>
+ *
+ * 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.
+ *
+ * Ported to X11 and xscreensaver by jwz, 27-Feb-2002.
+ *
+ * http://astronomy.swin.edu.au/~pbourke/modelling/fluid/
+ */
+
+#include <math.h>
+#include "screenhack.h"
+#include <stdio.h>
+
+
+typedef struct {
+  Display *dpy;
+  Window window;
+  XWindowAttributes xgwa;
+
+  GC draw_gc;          /* most of the balls */
+  GC draw_gc2;         /* the ball being dragged with the mouse */
+  GC erase_gc;
+  XColor fg;
+  XColor fg2;
+
+  int count;           /* number of balls */
+  float xmin, ymin;    /* rectangle of window, relative to root */
+  float xmax, ymax;
+
+  int mouse_ball;      /* index of ball being dragged, or 0 if none. */
+
+  float tc;            /* time constant (time-warp multiplier) */
+  float accx;          /* horizontal acceleration (wind) */
+  float accy;          /* vertical acceleration (gravity) */
+
+  float *vx,  *vy;     /* current ball velocities */
+  float *px,  *py;     /* current ball positions */
+  float *opx, *opy;    /* previous ball positions */
+  float *r;            /* ball radiuses */
+
+  float e;             /* coefficient of friction, I think? */
+  float max_radius;    /* largest radius of any ball */
+
+  Bool shake_p;                /* Whether to mess with gravity when things settle. */
+  float shake_threshold;
+  int time_since_shake;
+
+  Bool fps_p;          /* Whether to draw some text at the bottom. */
+  GC font_gc;
+  int font_height;
+  int font_baseline;
+  int frame_count;
+  int collision_count;
+
+} b_state;
+
+
+
+/* Finds the origin of the window relative to the root window, by
+   walking up the window tree until it reaches the top.
+ */
+static void
+window_origin (Display *dpy, Window window, int *x, int *y)
+{
+  Window root, parent, *kids;
+  unsigned int nkids;
+  XWindowAttributes xgwa;
+  int wx, wy;
+  XGetWindowAttributes (dpy, window, &xgwa);
+
+  wx = xgwa.x;
+  wy = xgwa.y;
+
+  kids = 0;
+  *x = 0;
+  *y = 0;
+
+  if (XQueryTree (dpy, window, &root, &parent, &kids, &nkids))
+    {
+      if (parent && parent != root)
+        {
+          int px, py;
+          window_origin (dpy, parent, &px, &py);
+          wx += px;
+          wy += py;
+        }
+    }
+  if (kids) XFree (kids);
+  *x = wx;
+  *y = wy;
+}
+
+
+/* Queries the window position to see if the window has moved or resized.
+   We poll this instead of waiting for ConfigureNotify events, because
+   when the window manager moves the window, only one ConfigureNotify
+   comes in: at the end of the motion.  If we poll, we can react to the
+   new position while the window is still being moved.  (Assuming the WM
+   does OpaqueMove, of course.)
+ */
+static void
+check_window_moved (b_state *state)
+{
+  float oxmin = state->xmin;
+  float oymin = state->ymin;
+  float oymax = state->ymax;
+  int wx, wy;
+  XGetWindowAttributes (state->dpy, state->window, &state->xgwa);
+  window_origin (state->dpy, state->window, &wx, &wy);
+  state->xmin = wx;
+  state->ymin = wy;
+  state->xmax = state->xmin + state->xgwa.width;
+  state->ymax = state->ymin + state->xgwa.height - state->font_height;
+
+  /* Only need to erase the window if the origin moved */
+  if (oxmin != state->xmin || oymin != state->ymin)
+    XClearWindow (state->dpy, state->window);
+  else if (state->fps_p && oymax != state->ymax)
+    XFillRectangle (state->dpy, state->window, state->erase_gc,
+                    0, state->xgwa.height - state->font_height,
+                    state->xgwa.width, state->font_height);
+
+}
+
+
+/* Returns the position of the mouse relative to the root window.
+ */
+static void
+query_mouse (b_state *state, int *x, int *y)
+{
+  Window root1, child1;
+  int mouse_x, mouse_y, root_x, root_y;
+  unsigned int mask;
+  if (XQueryPointer (state->dpy, state->window, &root1, &child1,
+                     &root_x, &root_y, &mouse_x, &mouse_y, &mask))
+    {
+      *x = root_x;
+      *y = root_y;
+    }
+  else
+    {
+      *x = -9999;
+      *y = -9999;
+    }
+}
+
+/* Re-pick the colors of the balls, and the mouse-ball.
+ */
+static void
+recolor (b_state *state)
+{
+  if (state->fg.flags)
+    XFreeColors (state->dpy, state->xgwa.colormap, &state->fg.pixel, 1, 0);
+  if (state->fg2.flags)
+    XFreeColors (state->dpy, state->xgwa.colormap, &state->fg2.pixel, 1, 0);
+
+  state->fg.flags  = DoRed|DoGreen|DoBlue;
+  state->fg.red    = 0x8888 + (random() % 0x8888);
+  state->fg.green  = 0x8888 + (random() % 0x8888);
+  state->fg.blue   = 0x8888 + (random() % 0x8888);
+
+  state->fg2.flags = DoRed|DoGreen|DoBlue;
+  state->fg2.red   = 0x8888 + (random() % 0x8888);
+  state->fg2.green = 0x8888 + (random() % 0x8888);
+  state->fg2.blue  = 0x8888 + (random() % 0x8888);
+
+  if (XAllocColor (state->dpy, state->xgwa.colormap, &state->fg))
+    XSetForeground (state->dpy, state->draw_gc,  state->fg.pixel);
+
+  if (XAllocColor (state->dpy, state->xgwa.colormap, &state->fg2))
+    XSetForeground (state->dpy, state->draw_gc2, state->fg2.pixel);
+}
+
+
+/* Initialize the state structure and various X data.
+ */
+static b_state *
+init_balls (Display *dpy, Window window)
+{
+  int i;
+  float extx, exty;
+  b_state *state = (b_state *) calloc (1, sizeof(*state));
+  XGCValues gcv;
+
+  state->dpy = dpy;
+  state->window = window;
+
+  check_window_moved (state);
+
+  /* Select ButtonRelease events on the external window, if no other app has
+     already selected it (only one app can select it at a time: BadAccess. */
+  if (! (state->xgwa.all_event_masks & ButtonReleaseMask))
+    XSelectInput (state->dpy, state->window,
+                  state->xgwa.your_event_mask | ButtonReleaseMask);
+
+  gcv.foreground = get_pixel_resource("foreground", "Foreground",
+                                      state->dpy, state->xgwa.colormap);
+  gcv.background = get_pixel_resource("background", "Background",
+                                      state->dpy, state->xgwa.colormap);
+  state->draw_gc = XCreateGC (state->dpy, state->window,
+                              GCForeground|GCBackground, &gcv);
+
+  gcv.foreground = get_pixel_resource("mouseForeground", "MouseForeground",
+                                      state->dpy, state->xgwa.colormap);
+  state->draw_gc2 = XCreateGC (state->dpy, state->window,
+                               GCForeground|GCBackground, &gcv);
+
+  gcv.foreground = gcv.background;
+  state->erase_gc = XCreateGC (state->dpy, state->window,
+                               GCForeground|GCBackground, &gcv);
+
+  recolor (state);
+
+  extx = state->xmax - state->xmin;
+  exty = state->ymax - state->ymin;
+
+  state->count = get_integer_resource ("count", "Count");
+  if (state->count < 1) state->count = 20;
+
+  state->max_radius = get_float_resource ("size", "Size") / 2;
+  if (state->max_radius < 1.0) state->max_radius = 1.0;
+
+  state->accx = get_float_resource ("wind", "Wind");
+  if (state->accx < -1.0 || state->accx > 1.0) state->accx = 0;
+
+  state->accy = get_float_resource ("gravity", "Gravity");
+  if (state->accy < -1.0 || state->accy > 1.0) state->accy = 0.01;
+
+  state->e = get_float_resource ("friction", "Friction");
+  if (state->e < 0.2 || state->e > 1.0) state->e = 0.97;
+
+  state->tc = get_float_resource ("timeScale", "TimeScale");
+  if (state->tc <= 0 || state->tc > 10) state->tc = 1.0;
+
+  state->shake_p = get_boolean_resource ("shake", "Shake");
+  state->shake_threshold = get_float_resource ("shakeThreshold",
+                                               "ShakeThreshold");
+
+  state->fps_p = get_boolean_resource ("doFPS", "DoFPS");
+  if (state->fps_p)
+    {
+      XFontStruct *font;
+      char *fontname = get_string_resource ("font", "Font");
+      const char *def_font = "fixed";
+      if (!fontname || !*fontname) fontname = (char *)def_font;
+      font = XLoadQueryFont (dpy, fontname);
+      if (!font) font = XLoadQueryFont (dpy, def_font);
+      if (!font) exit(-1);
+      gcv.font = font->fid;
+      gcv.foreground = get_pixel_resource("textColor", "Foreground",
+                                          state->dpy, state->xgwa.colormap);
+      state->font_gc = XCreateGC(dpy, window,
+                                 GCFont|GCForeground|GCBackground, &gcv);
+      state->font_height = font->ascent + font->descent;
+      state->font_baseline = font->descent;
+    }
+
+  state->r   = (float *) malloc (sizeof (*state->r)   * (state->count + 1));
+  state->vx  = (float *) malloc (sizeof (*state->vx)  * (state->count + 1));
+  state->vy  = (float *) malloc (sizeof (*state->vy)  * (state->count + 1));
+  state->px  = (float *) malloc (sizeof (*state->px)  * (state->count + 1));
+  state->py  = (float *) malloc (sizeof (*state->py)  * (state->count + 1));
+  state->opx = (float *) malloc (sizeof (*state->opx) * (state->count + 1));
+  state->opy = (float *) malloc (sizeof (*state->opy) * (state->count + 1));
+
+  for (i=1; i<=state->count; i++)
+    {
+      state->px[i] = frand(extx) + state->xmin;
+      state->py[i] = frand(exty) + state->ymin;
+      state->vx[i] = frand(0.2);
+      state->vy[i] = frand(0.2);
+
+      state->r[i] = state->max_radius;
+
+      /* not quite: */
+      /* state->r[i] = 4 + (random() % (int) (state->max_radius - 4)); */
+    }
+
+  return state;
+}
+
+
+/* Messes with gravity: permute "down" to be in a random direction.
+ */
+static void
+shake (b_state *state)
+{
+  float a = state->accx;
+  float b = state->accy;
+  int i = random() % 4;
+
+  switch (i)
+    {
+    case 0:
+      state->accx = a;
+      state->accy = b;
+      break;
+    case 1:
+      state->accx = -a;
+      state->accy = -b;
+      break;
+    case 2:
+      state->accx = b;
+      state->accy = a;
+      break;
+    case 3:
+      state->accx = -b;
+      state->accy = -a;
+      break;
+    default:
+      abort();
+      break;
+    }
+
+  state->time_since_shake = 0;
+  recolor (state);
+}
+
+
+/* Look at the current time, and update state->time_since_shake.
+   Draw the FPS display if desired.
+ */
+static void
+check_wall_clock (b_state *state, float max_d)
+{
+  static int tick = 0;
+  state->frame_count++;
+
+  if (tick++ > 20)  /* don't call gettimeofday() too often -- it's slow. */
+    {
+      static struct timeval last = { 0, };
+      struct timeval now;
+# ifdef GETTIMEOFDAY_TWO_ARGS
+      struct timezone tzp;
+      gettimeofday(&now, &tzp);
+# else
+      gettimeofday(&now);
+# endif
+
+      if (last.tv_sec == 0)
+        last = now;
+
+      tick = 0;
+      if (now.tv_sec == last.tv_sec)
+        return;
+
+      state->time_since_shake += (now.tv_sec - last.tv_sec);
+
+      if (state->fps_p)
+        {
+          static char buf[1024];
+          float elapsed = ((now.tv_sec  + (now.tv_usec  / 1000000.0)) -
+                           (last.tv_sec + (last.tv_usec / 1000000.0)));
+          float fps = state->frame_count / elapsed;
+          float cps = state->collision_count / elapsed;
+
+          sprintf (buf, " FPS: %.2f  Collisions: %.f/frame  Max motion: %.3f",
+                   fps, cps/fps, max_d);
+
+          XFillRectangle (state->dpy, state->window, state->erase_gc,
+                          0, state->xgwa.height - state->font_height,
+                          state->xgwa.width, state->font_height);
+          XDrawImageString (state->dpy, state->window, state->font_gc,
+                            0, state->xgwa.height - state->font_baseline,
+                            buf, strlen(buf));
+        }
+
+      state->frame_count = 0;
+      state->collision_count = 0;
+      last = now;
+    }
+}
+
+
+/* Erases the balls at their previous positions, and draws the new ones.
+ */
+static void
+repaint_balls (b_state *state)
+{
+  int a;
+  int x1a, x2a, y1a, y2a;
+  int x1b, x2b, y1b, y2b;
+  float max_d = 0;
+
+  for (a=1; a <= state->count; a++)
+    {
+      GC gc;
+      x1a = (state->opx[a] - state->r[a] - state->xmin);
+      y1a = (state->opy[a] - state->r[a] - state->ymin);
+      x2a = (state->opx[a] + state->r[a] - state->xmin);
+      y2a = (state->opy[a] + state->r[a] - state->ymin);
+
+      x1b = (state->px[a] - state->r[a] - state->xmin);
+      y1b = (state->py[a] - state->r[a] - state->ymin);
+      x2b = (state->px[a] + state->r[a] - state->xmin);
+      y2b = (state->py[a] + state->r[a] - state->ymin);
+
+/*      if (x1a != x1b || y1a != y1b)   -- leaves turds if we optimize this */
+        {          
+          gc = state->erase_gc;
+          XFillArc (state->dpy, state->window, gc,
+                    x1a, y1a, x2a-x1a, y2a-y1a,
+                    0, 360*64);
+        }
+
+      if (state->mouse_ball == a)
+        gc = state->draw_gc2;
+      else
+        gc = state->draw_gc;
+
+      XFillArc (state->dpy, state->window, gc,
+                x1b, y1b, x2b-x1b, y2b-y1b,
+                0, 360*64);
+
+      if (state->shake_p)
+        {
+          /* distance this ball moved this frame */
+          float d = ((state->px[a] - state->opx[a]) *
+                     (state->px[a] - state->opx[a]) +
+                     (state->py[a] - state->opy[a]) *
+                     (state->py[a] - state->opy[a]));
+          if (d > max_d) max_d = d;
+        }
+
+      state->opx[a] = state->px[a];
+      state->opy[a] = state->py[a];
+    }
+
+  if (state->shake_p && state->time_since_shake > 5)
+    {
+      max_d /= state->max_radius;
+      if (max_d < state->shake_threshold ||  /* when its stable */
+          state->time_since_shake > 30)      /* or when 30 secs has passed */
+        {
+          shake (state);
+        }
+    }
+
+  check_wall_clock (state, max_d);
+}
+
+
+/* Implements the laws of physics: move balls to their new positions.
+ */
+static void
+update_balls (b_state *state)
+{
+  int a, b;
+  float d, nx, ny, m, vxa, vya, vxb, vyb, dd, cdx, cdy, cosam;
+  float dee2 = state->max_radius * state->max_radius * 4;
+
+  check_window_moved (state);
+
+  /* If we're currently tracking the mouse, update that ball first.
+   */
+  if (state->mouse_ball != 0)
+    {
+      int mouse_x, mouse_y;
+      query_mouse (state, &mouse_x, &mouse_y);
+      state->px[state->mouse_ball] = mouse_x;
+      state->py[state->mouse_ball] = mouse_y;
+      state->vx[state->mouse_ball] =
+        (0.1 *
+         (state->px[state->mouse_ball] - state->opx[state->mouse_ball]) *
+         state->tc);
+      state->vy[state->mouse_ball] =
+        (0.1 *
+         (state->py[state->mouse_ball] - state->opy[state->mouse_ball]) *
+         state->tc);
+    }
+
+  /* For each ball, compute the influence of every other ball. */
+  for (a=1; a <= state->count; a++)
+    if (a != state->mouse_ball)
+      for (b=1; b <= state->count; b++)
+        if (a != b)
+          {
+            d = ((state->px[a] - state->px[b]) *
+                 (state->px[a] - state->px[b]) +
+                 (state->py[a] - state->py[b]) *
+                 (state->py[a] - state->py[b]));
+            if (d < dee2)
+              {
+                state->collision_count++;
+                d = sqrt(d);
+                vxa = state->vx[a];
+                vya = state->vy[a];
+                vxb = state->vx[b];
+                vyb = state->vy[b];
+                nx = state->px[b] - state->px[a];
+                ny = state->py[b] - state->py[a];
+                if (d < -0.0001 || d > 0.0001)
+                  {
+                    cdx = nx/d;
+                    cdy = ny/d;
+                    dd = state->r[a] + state->r[b] - d;
+                    state->px[a] -= dd*cdx;  /* just move them apart */
+                    state->py[a] -= dd*cdy;  /* no physical rationale, sorry */
+                    state->px[b] += dd*cdx;
+                    state->py[b] += dd*cdy;
+                    m = sqrt (state->vx[a] * state->vx[a] +
+                              state->vy[a] * state->vy[a]);
+                    if (m < -0.0001 || m > 0.0001)  /* A's velocity > 0 ? */
+                      {
+                        cosam = ((cdx * state->vx[a] + cdy * state->vy[a]) *
+                                 state->e);
+                        vxa -= cdx * cosam;
+                        vya -= cdy * cosam; /* conserve momentum */
+                        vxb += cdx * cosam;
+                        vyb += cdy * cosam;
+                      }
+                    m = sqrt (state->vx[b] *
+                              state->vx[b] +
+                              state->vy[b] *
+                              state->vy[b]);
+                    if (m < -0.0001 || m > 0.0001)
+                      {
+                        cosam = ((cdx * state->vx[b] + cdy * state->vy[b]) *
+                                 state->e);
+                        vxa += cdx * cosam;
+                        vya += cdy * cosam;
+                        vxb -= cdx * cosam;
+                        vyb -= cdy * cosam;
+                      }
+                  }
+                state->vx[a] = vxa;
+                state->vy[a] = vya;
+                state->vx[b] = vxb;
+                state->vy[b] = vyb;
+              }
+          }
+
+  /* Force all balls to be on screen.
+   */
+  for (a=1; a <= state->count; a++)
+    {
+      if (state->px[a] <= (state->xmin + state->r[a]))
+        {
+          state->px[a] = state->xmin + state->r[a];
+          state->vx[a] = -state->vx[a] * state->e;
+        }
+      if (state->px[a] >= (state->xmax - state->r[a]))
+        {
+          state->px[a] = state->xmax - state->r[a];
+          state->vx[a] = -state->vx[a] * state->e;
+        }
+      if (state->py[a] <= (state->ymin + state->r[a]))
+        {
+          state->py[a] = state->ymin + state->r[a];
+          state->vy[a] = -state->vy[a] * state->e;
+        }
+      if (state->py[a] >= (state->ymax - state->r[a]))
+        {
+          state->py[a] = state->ymax - state->r[a];
+          state->vy[a] = -state->vy[a] * state->e;
+        }
+    }
+
+  /* Apply gravity to all balls.
+   */
+  for (a=1; a <= state->count; a++)
+    if (a != state->mouse_ball)
+      {
+        state->vx[a] += state->accx * state->tc;
+        state->vy[a] += state->accy * state->tc;
+        state->px[a] += state->vx[a] * state->tc;
+        state->py[a] += state->vy[a] * state->tc;
+      }
+}
+
+
+/* Handle X events, specifically, allow a ball to be picked up with the mouse.
+ */
+static void
+handle_events (b_state *state)
+{
+  XSync (state->dpy, False);
+  while (XPending (state->dpy))
+    {
+      XEvent event;
+      XNextEvent (state->dpy, &event);
+      if (event.xany.type == ButtonPress)
+        {
+          int i;
+          float fmx = event.xbutton.x_root;
+          float fmy = event.xbutton.y_root;
+          if (state->mouse_ball != 0)  /* second down-click?  drop the ball. */
+            {
+              state->mouse_ball = 0;
+              return;
+            }
+          else
+            for (i=1; i <= state->count; i++)
+              {
+                float d = ((state->px[i] - fmx) * (state->px[i] - fmx) +
+                           (state->py[i] - fmy) * (state->py[i] - fmy));
+                float r = state->r[i];
+                if (d < r*r)
+                  {
+                    state->mouse_ball = i;
+                    return;
+                  }
+              }
+        }
+      else if (event.xany.type == ButtonRelease)   /* drop the ball */
+        {
+          state->mouse_ball = 0;
+          return;
+        }
+      else if (event.xany.type == ConfigureNotify)
+        {
+          /* This is redundant, since we poll this every iteration. */
+          check_window_moved (state);
+        }
+
+      screenhack_handle_event (state->dpy, &event);
+    }
+}
+
+\f
+char *progclass = "FluidBalls";
+
+char *defaults [] = {
+  ".background:                black",
+  ".textColor:         yellow",
+  ".font:              -*-helvetica-*-r-*-*-*-180-*-*-p-*-*-*",
+  "*delay:             10000",
+  "*count:             300",
+  "*size:              25",
+  "*gravity:           0.01",
+  "*wind:              0.00",
+  "*friction:          0.97",
+  "*timeScale:         1.0",
+  "*doFPS:             False",
+  "*shake:             True",
+  "*shakeThreshold:    0.015",
+  0
+};
+
+XrmOptionDescRec options [] = {
+  { "-delay",          ".delay",       XrmoptionSepArg, 0 },
+  { "-count",          ".count",       XrmoptionSepArg, 0 },
+  { "-size",           ".size",        XrmoptionSepArg, 0 },
+  { "-count",          ".count",       XrmoptionSepArg, 0 },
+  { "-gravity",                ".gravity",     XrmoptionSepArg, 0 },
+  { "-wind",           ".wind",        XrmoptionSepArg, 0 },
+  { "-friction",       ".friction",    XrmoptionSepArg, 0 },
+  { "-fps",            ".doFPS",       XrmoptionNoArg, "True" },
+  { "-no-fps",         ".doFPS",       XrmoptionNoArg, "False" },
+  { "-shake",          ".shake",       XrmoptionNoArg, "True" },
+  { "-no-shake",       ".shake",       XrmoptionNoArg, "False" },
+  { 0, 0, 0, 0 }
+};
+
+void
+screenhack (Display *dpy, Window window)
+{
+  b_state *state = init_balls(dpy, window);
+  int delay = get_integer_resource ("delay", "Integer");
+
+  while (1)
+    {
+      repaint_balls(state);
+      update_balls(state);
+
+      XSync (dpy, False);
+      handle_events (state);
+      if (delay) usleep (delay);
+    }
+}
index ce57b7b93002416a1352e57b0d51b49473129fe1..5882bb3448c51be74294c5e2b80429c73a465325 100644 (file)
-/* -*- Mode: C; tab-width: 4 -*- */
-/* forest --- binary trees in a fractal forest */
-
-#if !defined( lint ) && !defined( SABER )
-static const char sccsid[] = "@(#)forest.c     5.00 2000/11/01 xlockmore";
-
-#endif
-
-/*-
- * Copyright (c) 1995 Pascal Pensa <pensa@aurora.unice.fr>
- *
- * Original idea : Guillaume Ramey <ramey@aurora.unice.fr>
- *
- * 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.
+/* forest.c (aka xtree.c), Copyright (c) 1999
+ *  Peter Baumung <unn6@rz.uni-karlsruhe.de>
  *
- * 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.
- *
- * Revision History:
- * 01-Nov-2000: Allocation checks
- * 10-May-1997: Compatible with xscreensaver
+ * Most code taken from
+ *  xscreensaver, Copyright (c) 1992, 1995, 1997 
+ *  Jamie Zawinski <jwz@netscape.com>
  *
+ * 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.
  */
 
-#ifdef STANDALONE
-#define MODE_forest
-#define PROGCLASS "Forest"
-#define HACK_INIT init_forest
-#define HACK_DRAW draw_forest
-#define forest_opts xlockmore_opts
-#define DEFAULTS "*delay: 500000 \n" \
- "*count: 100 \n" \
- "*cycles: 200 \n" \
- "*ncolors: 20 \n"
-#define UNIFORM_COLORS
-#include "xlockmore.h"         /* in xscreensaver distribution */
-#else /* STANDALONE */
-#include "xlock.h"             /* in xlockmore distribution */
-
-#endif /* STANDALONE */
-
-#ifdef MODE_forest
-
-ModeSpecOpt forest_opts =
-{0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL};
+#include "config.h"
 
-#ifdef USE_MODULES
-ModStruct   forest_description =
-{"forest", "init_forest", "draw_forest", "release_forest",
- "refresh_forest", "init_forest", (char *) NULL, &forest_opts,
- 400000, 100, 200, 1, 64, 1.0, "",
- "Shows binary trees of a fractal forest", 0, NULL};
+/* ******************************   NOTE   ******************************
 
-#endif
+     This is not the xlockmore version of forest, but a much better
+     looking rewrite.  Be careful not to delete it in a merging frenzy...
 
-#define MINTREES   1
-
-#define MINHEIGHT  20          /* Tree height range */
-#define MAXHEIGHT  40
-
-#define MINANGLE   15          /* (degree) angle between soon */
-#define MAXANGLE   35
-#define RANDANGLE  15          /* (degree) Max random angle from default */
-
-#define REDUCE     90          /* Height % from father */
-
-#define ITERLEVEL  10          /* Tree iteration */
-
-#define COLORSPEED  2          /* Color increment */
-
-/* degree to radian */
-#define DEGTORAD(x) (((float)(x)) * M_PI / 180.0)
+   **********************************************************************
+ */
 
-#define RANGE_RAND(min,max) ((min) + NRAND((max) - (min)))
+#ifdef STANDALONE
+# define PROGCLASS          "Forest" /*"XTree"*/
+# define HACK_INIT          init_trees
+# define HACK_DRAW          draw_trees
+# define trees_opts         xlockmore_opts 
+# define DEFAULTS   "*delay:            500000 \n"  \
+                    "*ncolors:          20     \n"  \
+                    "*eraseSpeed:       400    \n"  \
+                    "*eraseMode:        -1     \n"  \
+                    "*installColormap   False"
+# include "xlockmore.h"     /* from the xscreensaver distribution */
+#else  /* !STANDALONE */
+# include "xlock.h"                                    /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+ModeSpecOpt trees_opts = {0, NULL, 0, NULL, NULL};
 
 typedef struct {
-       int         width;
-       int         height;
-       int         time;       /* up time */
-       int         ntrees;
-} foreststruct;
-
-static foreststruct *forests = (foreststruct *) NULL;
-
-static void
-draw_tree(ModeInfo * mi,
-         short int x, short int y, short int len,
-         float a, float as, short int c, short int level)
-                               /* Father's end */
-                               /* Length */
-                               /* color */
-                               /* Height level */
-                               /* Father's angle */
-                               /* Father's angle step */
-{
-       Display    *display = MI_DISPLAY(mi);
-       Window      window = MI_WINDOW(mi);
-       GC          gc = MI_GC(mi);
-       short       x_1, y_1, x_2, y_2;
-       float       a1, a2;
-
-       /* left */
-
-       a1 = a + as + DEGTORAD(NRAND(2 * RANDANGLE) - RANDANGLE);
-
-       x_1 = x + (short) (COSF(a1) * ((float) len));
-       y_1 = y + (short) (SINF(a1) * ((float) len));
-
-       /* right */
-
-       a2 = a - as + DEGTORAD(NRAND(2 * RANDANGLE) - RANDANGLE);
-
-       x_2 = x + (short) (COSF(a2) * ((float) len));
-       y_2 = y + (short) (SINF(a2) * ((float) len));
-
-       if (MI_NPIXELS(mi) > 2) {
-               XSetForeground(display, gc, MI_PIXEL(mi, c));
-               c = (c + COLORSPEED) % MI_NPIXELS(mi);
-       } else
-               XSetForeground(display, gc, MI_WHITE_PIXEL(mi));
-
-       XDrawLine(display, window, gc, x, y, x_1, y_1);
-       XDrawLine(display, window, gc, x, y, x_2, y_2);
-
-       if (level < 2) {
-               XDrawLine(display, window, gc, x + 1, y, x_1 + 1, y_1);
-               XDrawLine(display, window, gc, x + 1, y, x_2 + 1, y_2);
-       }
-       len = (len * REDUCE * 10) / 1000;
-
-       if (level < ITERLEVEL) {
-               draw_tree(mi, x_1, y_1, len, a1, as, c, level + 1);
-               draw_tree(mi, x_2, y_2, len, a2, as, c, level + 1);
-       }
+  int     x;
+  int     y;
+  int     thick;
+  double  size;
+  long    color;
+  int     toDo;
+  int     season;
+} treestruct;
+
+static treestruct *trees = NULL;
+
+XColor colors[20];
+int color;
+
+static long colorM[12] = {0xff0000, 0xff8000, 0xffff00, 0x80ff00,
+                          0x00ff00, 0x00ff80, 0x00ffff, 0x0080ff,
+                          0x0000ff, 0x8000ff, 0xff00ff, 0xff0080};
+
+static long colorV[12] = {0x0a0000, 0x0a0500, 0x0a0a00, 0x050a00,
+                          0x000a00, 0x000a05, 0x000a0a, 0x00050a,
+                          0x00000a, 0x05000a, 0x0a000a, 0x0a0005};
+
+void init_trees(ModeInfo * mi) {
+       unsigned long                   pixels[20];
+  treestruct       *tree;
+  Display          *display = MI_DISPLAY(mi);
+  GC                gc = MI_GC(mi);
+  int               i;
+
+  if (trees == NULL) {
+    trees = (treestruct *) calloc(MI_NUM_SCREENS(mi), sizeof (treestruct));
+    if (trees == NULL) {
+      return;
+    }
+               
+    if (mi->npixels > 20) {
+                       printf("%d colors selected. Setting limit to 20...\n", mi->npixels);
+                       mi->npixels = 20;
+               }
+                       
+               if (mi->npixels < 4) {
+      for (i = 0; i < mi->npixels; i++) {
+        colors[i].red   = 65535 * (i & 1);
+        colors[i].green = 65535 * (i & 1);
+        colors[i].blue  = 65535 * (i & 1);
+        colors[i].flags = DoRed | DoGreen | DoBlue;
+      }
+    } else {
+      if (mi->npixels < 8) {
+        for (i = 0; i < mi->npixels; i++) {
+          colors[i].red   = 32768 + 4096 * (i % 4);
+          colors[i].green = 32768 + 4096 * (i % 4);
+          colors[i].blue  = 32768 + 4096 * (i % 4);
+          colors[i].flags = DoRed | DoGreen | DoBlue;
+        }
+      } else {
+        for (i = 0; i < mi->npixels; i++) {
+          colors[i].red   = 24576 + 4096 * (i % 4);
+          colors[i].green = 10240 + 2048 * (i % 4);
+          colors[i].blue  =  0;
+          colors[i].flags = DoRed | DoGreen | DoBlue;
+        }
+      }
+    }
+
+    for (i = 0; i < mi->npixels; i++)
+      if (!XAllocColor(display, mi->xgwa.colormap, &colors[i])) break;
+    color = i;
+
+    XSetForeground(display, gc, colors[1].pixel);
+  }
+
+  XClearWindow(display, MI_WINDOW(mi));
+  XSetLineAttributes(display, gc, 2, LineSolid, CapButt, JoinMiter);
+  tree = &trees[MI_SCREEN(mi)];
+  tree->toDo   = 25;
+       tree->season = NRAND(12);
+
+  for (i = 4; i < mi->npixels; i++) {
+    int sIndex = (tree->season + (i-4) / 4) % 12;
+    long color = colorM[sIndex] - 2 * colorV[sIndex] * (i % 4);
+    colors[i].red = (color & 0xff0000) / 256;
+    colors[i].green = (color & 0x00ff00);
+    colors[i].blue = (color & 0x0000ff) * 256;
+    colors[i].flags = DoRed | DoGreen | DoBlue;
+  }
+
+       for (i = 0; i < color; i++)
+               pixels[i] = colors[i].pixel;
+                       
+  XFreeColors(display, mi->xgwa.colormap, pixels, mi->npixels, 0L);
+
+       for (i = 0; i < mi->npixels; i++)
+    if (!XAllocColor(display, mi->xgwa.colormap, &colors[i])) break;
+
+  color = i;
 }
 
-void
-init_forest(ModeInfo * mi)
-{
-       foreststruct *fp;
-
-       if (forests == NULL) {
-               if ((forests = (foreststruct *) calloc(MI_NUM_SCREENS(mi),
-                                            sizeof (foreststruct))) == NULL)
-                       return;
-       }
-       fp = &forests[MI_SCREEN(mi)];
-
-       fp->width = MI_WIDTH(mi);
-       fp->height = MI_HEIGHT(mi);
-       fp->time = 0;
-
-       fp->ntrees = MI_COUNT(mi);
-       if (fp->ntrees < -MINTREES)
-               fp->ntrees = NRAND(-fp->ntrees - MINTREES + 1) + MINTREES;
-       else if (fp->ntrees < MINTREES)
-               fp->ntrees = MINTREES;
-
-       MI_CLEARWINDOW(mi);
+double rRand(double a, double b) {
+  return (a+(b-a)*NRAND(10001)/10000.0);
 }
 
-void
-draw_forest(ModeInfo * mi)
-{
-       Display    *display = MI_DISPLAY(mi);
-       GC          gc = MI_GC(mi);
-       short       x, y, x_2, y_2, len, c = 0;
-       float       a, as;
-       foreststruct *fp;
-
-       if (forests == NULL)
-               return;
-       fp = &forests[MI_SCREEN(mi)];
-
-       MI_IS_DRAWN(mi) = True;
-       if (fp->time < fp->ntrees) {
-
-               x = RANGE_RAND(0, fp->width);
-               y = RANGE_RAND(0, fp->height + MAXHEIGHT);
-               a = -M_PI / 2.0 + DEGTORAD(NRAND(2 * RANDANGLE) - RANDANGLE);
-               as = DEGTORAD(RANGE_RAND(MINANGLE, MAXANGLE));
-               len = ((RANGE_RAND(MINHEIGHT, MAXHEIGHT) * (fp->width / 20)) / 50) + 2;
-
-               if (MI_NPIXELS(mi) > 2) {
-                       c = NRAND(MI_NPIXELS(mi));
-                       XSetForeground(display, gc, MI_PIXEL(mi, c));
-                       c = (c + COLORSPEED) % MI_NPIXELS(mi);
-               } else
-                       XSetForeground(display, gc, MI_WHITE_PIXEL(mi));
-
-               x_2 = x + (short) (COSF(a) * ((float) len));
-               y_2 = y + (short) (SINF(a) * ((float) len));
-
-               XDrawLine(display, MI_WINDOW(mi), gc, x, y, x_2, y_2);
-               XDrawLine(display, MI_WINDOW(mi), gc, x + 1, y, x_2 + 1, y_2);
-
-               draw_tree(mi, x_2, y_2, (len * REDUCE) / 100, a, as, c, 1);
-       }
-       if (++fp->time > MI_CYCLES(mi)) {
-               init_forest(mi);
-       }
+void draw_line(ModeInfo * mi,
+               int x1, int y1, int x2, int y2,
+               double angle, int widths, int widthe) {
+
+  Display    *display = MI_DISPLAY(mi);
+  GC          gc = MI_GC(mi);
+  double      sns = 0.5*widths*sin(angle + M_PI_2);
+  double      css = 0.5*widths*cos(angle + M_PI_2);
+  double      sne = 0.5*widthe*sin(angle + M_PI_2);
+  double      cse = 0.5*widthe*cos(angle + M_PI_2);
+
+  int         xs1 = (int) (x1-sns);
+  int         xs2 = (int) (x1+sns);
+  int         ys1 = (int) (y1-css);
+  int         ys2 = (int) (y1+css);
+  int         xe1 = (int) (x2-sne);
+  int         xe2 = (int) (x2+sne);
+  int         ye1 = (int) (y2-cse);
+  int         ye2 = (int) (y2+cse);
+  int         i;
+
+  for (i = 0; i < widths; i++) {
+    if (color >= 4)
+      XSetForeground(display, gc, colors[i*4/widths].pixel);
+    XDrawLine(display, MI_WINDOW(mi), gc,
+      xs1+(xs2-xs1)*i/widths, ys1+(ys2-ys1)*i/widths,
+      xe1+(xe2-xe1)*i/widths, ye1+(ye2-ye1)*i/widths);
+  }
 }
 
-void
-release_forest(ModeInfo * mi)
-{
-       if (forests != NULL) {
-               (void) free((void *) forests);
-               forests = (foreststruct *) NULL;
-       }
+void draw_tree_rec(ModeInfo * mi, double thick, int x, int y, double angle) {
+  treestruct *tree = &trees[MI_SCREEN(mi)];
+  Display    *display = MI_DISPLAY(mi);
+  GC          gc = MI_GC(mi);
+  int         length = (24+NRAND(12))*tree->size;
+  int         a = (int) (x - length*sin(angle));
+  int         b = (int) (y - length*cos(angle));
+  int         i;
+
+  draw_line(mi, x, y, a, b, angle, thick*tree->size, 0.68*thick*tree->size);
+
+  if (thick > 2) {
+    draw_tree_rec(mi, 0.68*thick, a, b, 0.8*angle+rRand(-0.2, 0.2));
+    if (thick < tree->thick-1) {
+      draw_tree_rec(mi, 0.68*thick, a, b, angle+rRand(0.2, 0.9));
+      draw_tree_rec(mi, 0.68*thick, (a+x)/2, (b+y)/2, angle-rRand(0.2, 0.9));
+    }
+  }
+
+  if (thick < 0.5*tree->thick) {
+       int     nleaf = 12 + NRAND(4);
+         XArc    leaf[16];
+    for (i = 0; i < nleaf; i++) {
+      leaf[i].x = a + (int) (tree->size * rRand(-12, 12));
+      leaf[i].y = b + (int) (tree->size * rRand(-12, 12));
+      leaf[i].width = (int) (tree->size * rRand(2, 6));
+      leaf[i].height = leaf[i].width;
+      leaf[i].angle1 = 0;
+      leaf[i].angle2 = 360 * 64;
+    }
+    if (mi->npixels >= 4)
+      XSetForeground(display, gc, colors[tree->color+NRAND(4)].pixel);
+    XFillArcs(display, MI_WINDOW(mi), gc, leaf, nleaf);
+  }
 }
 
-void
-refresh_forest(ModeInfo * mi)
-{
-       MI_CLEARWINDOW(mi);
+void draw_trees(ModeInfo * mi) {
+  treestruct *tree = &trees[MI_SCREEN(mi)];
+       int                                     width = MI_WIN_WIDTH(mi);
+       int                                     height = MI_WIN_HEIGHT(mi);
+
+  if (--(tree->toDo) == 0) {
+    usleep(3000000);
+    init_trees(mi);
+  }
+
+  tree->x        = NRAND(width);
+  tree->y        = (int) (1.25 * height * (1 - tree->toDo / 23.0));
+  tree->thick    = rRand(7, 12);
+  tree->size     = height / 480.0;
+  if (color < 8) {
+    tree->color = 0;
+  } else {
+    tree->color    = 4 * (1 + NRAND(color / 4 - 1));
+  }
+
+  draw_tree_rec(mi, tree->thick, tree->x, tree->y, rRand(-0.1, 0.1));
 }
 
-#endif /* MODE_forest */
+void release_trees(ModeInfo * mi) {
+  if (trees != NULL) {
+    (void) free((void *) trees);
+    trees = NULL;
+  }
+}
index 5b8f028063a2498462d27823826e75a2cc6f03e0..9e01c2995655164cc6c58372eecb00284f4eb6e1 100644 (file)
@@ -79,7 +79,8 @@ SRCS          = xscreensaver-gl-helper.c \
                  stonerview-view.c starwars.c glut_stroke.c glut_swidth.c \
                  gltext.c molecule.c dangerball.c sphere.c tube.c circuit.c \
                  menger.c engine.c flipscreen3d.c font-ximage.c \
-                 grab-ximage.c glsnake.c boxed.c glforestfire.c sballs.c
+                 grab-ximage.c glsnake.c boxed.c glforestfire.c sballs.c \
+                 cubenetic.c
 
 OBJS           = xscreensaver-gl-helper.o \
                  atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
@@ -95,13 +96,14 @@ OBJS                = xscreensaver-gl-helper.o \
                  stonerview-view.o starwars.o glut_stroke.o glut_swidth.o \
                  gltext.o molecule.o dangerball.o sphere.o tube.o circuit.o \
                  menger.o engine.o flipscreen3d.o font-ximage.o \
-                 grab-ximage.o glsnake.o boxed.o glforestfire.o sballs.o
+                 grab-ximage.o glsnake.o boxed.o glforestfire.o sballs.o \
+                 cubenetic.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
                  sierpinski3d gflux stonerview starwars gltext molecule \
                  dangerball circuit menger engine flipscreen3d glsnake boxed \
-                 glforestfire sballs
+                 glforestfire sballs cubenetic
 GLE_EXES       = extrusion
 GL_UTIL_EXES   = xscreensaver-gl-helper
 HACK_EXES      = @GL_EXES@ @GLE_EXES@
@@ -385,6 +387,10 @@ glforestfire:      glforestfire.o  $(HACK_OBJS) xpm-ximage.o
 sballs:                sballs.o        $(HACK_OBJS) xpm-ximage.o
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) xpm-ximage.o $(XPM_LIBS)
 
+cubenetic:     cubenetic.o     $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+
+
 # This one works differently (it's not xlock-like.)
 #
 STONER_OBJS=stonerview.o stonerview-move.o stonerview-osc.o stonerview-view.o \
@@ -464,7 +470,7 @@ fps.o: ../../config.h
 xpm-ximage.o: ../../config.h
 glplanet.o: ../../config.h
 glplanet.o: $(srcdir)/sphere.h
-glplanet.o: $(HACK_SRC)/images/earth.xbm
+glplanet.o: $(HACK_SRC)/images/earth.xpm
 glplanet.o: $(srcdir)/xpm-ximage.h
 pulsar.o: ../../config.h
 extrusion.o: ../../config.h
@@ -507,7 +513,6 @@ dangerball.o: ../../config.h
 dangerball.o: $(srcdir)/sphere.h
 dangerball.o: $(srcdir)/tube.h
 sphere.o: ../../config.h
-sphere.o: $(srcdir)/tube.h
 tube.o: ../../config.h
 tube.o: $(srcdir)/tube.h
 circuit.o: ../../config.h
@@ -529,4 +534,5 @@ sballs.o: ../../config.h
 sballs.o: $(srcdir)/xpm-ximage.h
 sballs.o: $(HACK_SRC)/images/sball.xpm
 sballs.o: $(HACK_SRC)/images/sball-bg.xpm
+cubenetic.o: ../../config.h
 
index b973f083dd5aa7b26e038fc0b19f284a2b3555f7..30d5f6f872b58231e524b2cab4294e8851bc3e82 100644 (file)
@@ -1071,8 +1071,19 @@ pinit(ModeInfo * mi)
    
    
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-   gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 256, 256,
-                    GL_RGB, GL_UNSIGNED_BYTE, gp->tex1);
+
+   clear_gl_error();
+   i = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 256, 256,
+                         GL_RGB, GL_UNSIGNED_BYTE, gp->tex1);
+   if (i)
+     {
+       const char *s = gluErrorString (i);
+       fprintf (stderr, "%s: error mipmapping texture: %s\n",
+                progname, (s ? s : "(unknown)"));
+       exit (1);
+     }
+   check_gl_error("mipmapping");
+
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
index a2983bcd718f641990dfacf0e82ec715e945bd7b..5f0e4e447833a416368ab712c57c6fa999910c05 100644 (file)
@@ -319,6 +319,7 @@ reshape_cage(ModeInfo * mi, int width, int height)
 static void
 pinit(void)
 {
+    int status;
        glClearDepth(1.0);
        glClearColor(0.0, 0.0, 0.0, 1.0);
 
@@ -345,8 +346,20 @@ pinit(void)
        glEnable(GL_CULL_FACE);
 
        glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-       gluBuild2DMipmaps(GL_TEXTURE_2D, 3, WoodTextureWidth, WoodTextureHeight,
-                         GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+
+    clear_gl_error();
+       status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
+                               WoodTextureWidth, WoodTextureHeight,
+                               GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+    if (status)
+      {
+        const char *s = gluErrorString (status);
+        fprintf (stderr, "%s: error mipmapping texture: %s\n",
+                 progname, (s ? s : "(unknown)"));
+        exit (1);
+      }
+    check_gl_error("mipmapping");
+
        glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
index 0c28e9fb7a735097f26a22ff6606aedbfe5a87f3..faa30df2c63099b24fa0754be0c39aa1ff7faf78 100644 (file)
@@ -1708,7 +1708,7 @@ TexNum * fonttexturealloc (const char *str, float *fg, float *bg)
 {
   static char *strings[50]; /* max of 40 textures */
   static int w[50], h[50];
-  int i;
+  int i, status;
   static int init;
   XImage *ximage;
   char *c;
@@ -1737,8 +1737,20 @@ TexNum * fonttexturealloc (const char *str, float *fg, float *bg)
   for (i = 1 ; strings[i] != NULL ; i++); /* set i to the next unused value */
   glBindTexture(GL_TEXTURE_2D, i);
   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-  gluBuild2DMipmaps(GL_TEXTURE_2D, 4, ximage->width, ximage->height, GL_RGBA,
-                    GL_UNSIGNED_BYTE, ximage->data);
+
+  clear_gl_error();
+  status = gluBuild2DMipmaps(GL_TEXTURE_2D, 4, ximage->width, ximage->height,
+                             GL_RGBA, GL_UNSIGNED_BYTE, ximage->data);
+  if (status)
+    {
+      const char *s = gluErrorString (status);
+      fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+               progname, ximage->width, ximage->height,
+               (s ? s : "(unknown)"));
+      exit (1);
+    }
+  check_gl_error("mipmapping");
+
   t = malloc(sizeof(TexNum));
   t->w = ximage->width;
   t->h = ximage->height;
diff --git a/hacks/glx/cubenetic.c b/hacks/glx/cubenetic.c
new file mode 100644 (file)
index 0000000..4b4815e
--- /dev/null
@@ -0,0 +1,662 @@
+/* cubenetic, Copyright (c) 2002 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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.
+ */
+
+#include <X11/Intrinsic.h>
+
+extern XtAppContext app;
+
+#define PROGCLASS      "Cubenetic"
+#define HACK_INIT      init_cube
+#define HACK_DRAW      draw_cube
+#define HACK_RESHAPE   reshape_cube
+#define ccs_opts       xlockmore_opts
+
+#define DEF_SPIN        "XYZ"
+#define DEF_WANDER      "True"
+#define DEF_TEXTURE     "True"
+
+#define DEF_WAVE_COUNT  "3"
+#define DEF_WAVE_SPEED  "80"
+#define DEF_WAVE_RADIUS "512"
+
+#define DEFAULTS       "*delay:        30000       \n" \
+                       "*count:        5           \n" \
+                       "*showFPS:      False       \n" \
+                       "*wireframe:    False       \n" \
+                       "*spin:       " DEF_SPIN   "\n" \
+                       "*wander:     " DEF_WANDER "\n" \
+                       "*texture:    " DEF_TEXTURE"\n" \
+                       "*waves:      " DEF_WAVE_COUNT  "\n" \
+                       "*waveSpeed:  " DEF_WAVE_SPEED  "\n" \
+                       "*waveRadius: " DEF_WAVE_RADIUS "\n" \
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#include "xlockmore.h"
+#include "colors.h"
+#include <ctype.h>
+
+#ifdef USE_GL /* whole file */
+
+#include <GL/glu.h>
+
+typedef struct {
+  int color;
+  GLfloat x, y, z;
+  GLfloat w, h, d;
+  int frame;
+  GLfloat dx, dy, dz;
+  GLfloat dw, dh, dd;
+} cube;
+
+typedef struct {
+  int x, y;
+  double xth, yth;
+} wave_src;
+
+typedef struct {
+  int nwaves;
+  int radius;
+  int speed;
+  wave_src *srcs;
+  int *heights;
+} waves;
+
+
+typedef struct {
+  GLXContext *glx_context;
+
+  GLfloat rotx, roty, rotz;       /* current object rotation */
+  GLfloat dx, dy, dz;             /* current rotational velocity */
+  GLfloat ddx, ddy, ddz;          /* current rotational acceleration */
+  GLfloat d_max;                  /* max velocity */
+  Bool spin_x, spin_y, spin_z;
+
+  GLuint cube_list;
+  GLuint texture_id;
+  int ncubes;
+  cube *cubes;
+  waves *waves;
+
+  int texture_width, texture_height;
+  unsigned char *texture;
+
+  int ncolors;
+  XColor *cube_colors;
+  XColor *texture_colors;
+
+} cube_configuration;
+
+static cube_configuration *ccs = NULL;
+
+static char *do_spin;
+static Bool do_wander;
+static Bool do_texture;
+
+static int wave_count;
+static int wave_speed;
+static int wave_radius;
+static int texture_size = 256;
+
+static XrmOptionDescRec opts[] = {
+  { "-spin",   ".spin",   XrmoptionSepArg, 0 },
+  { "+spin",   ".spin",   XrmoptionNoArg, "" },
+  { "-wander", ".wander", XrmoptionNoArg, "True" },
+  { "+wander", ".wander", XrmoptionNoArg, "False" },
+  {"-texture", ".texture", XrmoptionNoArg, (caddr_t) "true" },
+  {"+texture", ".texture", XrmoptionNoArg, (caddr_t) "false" },
+  {"-waves",       ".waves",      XrmoptionSepArg, 0 },
+  {"-wave-speed",  ".waveSpeed",  XrmoptionSepArg, 0 },
+  {"-wave-radius", ".waveRadius", XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+  {(caddr_t *) &do_spin,   "spin",   "Spin",   DEF_SPIN,   t_String},
+  {(caddr_t *) &do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
+  {(caddr_t *) &do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
+  {(caddr_t *) &wave_count, "waves",     "Waves",      DEF_WAVE_COUNT, t_Int},
+  {(caddr_t *) &wave_speed, "waveSpeed", "WaveSpeed",  DEF_WAVE_SPEED, t_Int},
+  {(caddr_t *) &wave_radius,"waveRadius","WaveRadius", DEF_WAVE_RADIUS,t_Int},
+};
+
+ModeSpecOpt ccs_opts = {countof(opts), opts, countof(vars), vars, NULL};
+
+
+static void
+unit_cube (Bool wire)
+{
+  glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* front */
+  glNormal3f (0, 0, 1);
+  glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5,  0.5);
+  glTexCoord2f(0, 0); glVertex3f ( 0.5,  0.5,  0.5);
+  glTexCoord2f(0, 1); glVertex3f (-0.5,  0.5,  0.5);
+  glTexCoord2f(1, 1); glVertex3f (-0.5, -0.5,  0.5);
+  glEnd();
+
+  glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* back */
+  glNormal3f (0, 0, -1);
+  glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+  glTexCoord2f(0, 1); glVertex3f (-0.5,  0.5, -0.5);
+  glTexCoord2f(1, 1); glVertex3f ( 0.5,  0.5, -0.5);
+  glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5, -0.5);
+  glEnd();
+
+  glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* left */
+  glNormal3f (-1, 0, 0);
+  glTexCoord2f(1, 1); glVertex3f (-0.5,  0.5,  0.5);
+  glTexCoord2f(1, 0); glVertex3f (-0.5,  0.5, -0.5);
+  glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+  glTexCoord2f(0, 1); glVertex3f (-0.5, -0.5,  0.5);
+  glEnd();
+
+  glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* right */
+  glNormal3f (1, 0, 0);
+  glTexCoord2f(1, 1); glVertex3f ( 0.5, -0.5, -0.5);
+  glTexCoord2f(1, 0); glVertex3f ( 0.5,  0.5, -0.5);
+  glTexCoord2f(0, 0); glVertex3f ( 0.5,  0.5,  0.5);
+  glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5,  0.5);
+  glEnd();
+
+  if (wire) return;
+
+  glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* top */
+  glNormal3f (0, 1, 0);
+  glTexCoord2f(0, 0); glVertex3f ( 0.5,  0.5,  0.5);
+  glTexCoord2f(0, 1); glVertex3f ( 0.5,  0.5, -0.5);
+  glTexCoord2f(1, 1); glVertex3f (-0.5,  0.5, -0.5);
+  glTexCoord2f(1, 0); glVertex3f (-0.5,  0.5,  0.5);
+  glEnd();
+
+  glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* bottom */
+  glNormal3f (0, -1, 0);
+  glTexCoord2f(1, 0); glVertex3f (-0.5, -0.5,  0.5);
+  glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
+  glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5, -0.5);
+  glTexCoord2f(1, 1); glVertex3f ( 0.5, -0.5,  0.5);
+  glEnd();
+}
+
+
+
+/* Window management, etc
+ */
+void
+reshape_cube (ModeInfo *mi, int width, int height)
+{
+  GLfloat h = (GLfloat) height / (GLfloat) width;
+
+  glViewport (0, 0, (GLint) width, (GLint) height);
+
+  glMatrixMode(GL_PROJECTION);
+  glLoadIdentity();
+
+  gluPerspective( 30.0, 1/h, 1.0, 100.0 );
+  gluLookAt( 0.0, 0.0, 15.0,
+             0.0, 0.0, 0.0,
+             0.0, 1.0, 0.0);
+  glMatrixMode(GL_MODELVIEW);
+  glLoadIdentity();
+  glTranslatef(0.0, 0.0, -15.0);
+
+  glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+/* lifted from lament.c */
+#define RAND(n) ((long) ((random() & 0x7fffffff) % ((long) (n))))
+#define RANDSIGN() ((random() & 1) ? 1 : -1)
+
+static void
+rotate(GLfloat *pos, GLfloat *v, GLfloat *dv, GLfloat max_v)
+{
+  double ppos = *pos;
+
+  /* tick position */
+  if (ppos < 0)
+    ppos = -(ppos + *v);
+  else
+    ppos += *v;
+
+  if (ppos > 1.0)
+    ppos -= 1.0;
+  else if (ppos < 0)
+    ppos += 1.0;
+
+  if (ppos < 0) abort();
+  if (ppos > 1.0) abort();
+  *pos = (*pos > 0 ? ppos : -ppos);
+
+  /* accelerate */
+  *v += *dv;
+
+  /* clamp velocity */
+  if (*v > max_v || *v < -max_v)
+    {
+      *dv = -*dv;
+    }
+  /* If it stops, start it going in the other direction. */
+  else if (*v < 0)
+    {
+      if (random() % 4)
+       {
+         *v = 0;
+
+         /* keep going in the same direction */
+         if (random() % 2)
+           *dv = 0;
+         else if (*dv < 0)
+           *dv = -*dv;
+       }
+      else
+       {
+         /* reverse gears */
+         *v = -*v;
+         *dv = -*dv;
+         *pos = -*pos;
+       }
+    }
+
+  /* Alter direction of rotational acceleration randomly. */
+  if (! (random() % 120))
+    *dv = -*dv;
+
+  /* Change acceleration very occasionally. */
+  if (! (random() % 200))
+    {
+      if (*dv == 0)
+       *dv = 0.00001;
+      else if (random() & 1)
+       *dv *= 1.2;
+      else
+       *dv *= 0.8;
+    }
+}
+
+
+\f
+/* Waves.
+   Adapted from ../hacks/interference.c by Hannu Mallat.
+ */
+
+static void
+init_wave (ModeInfo *mi)
+{
+  cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+  waves *ww;
+  int i;
+  cc->waves = ww = (waves *) calloc (sizeof(*cc->waves), 1);
+  ww->nwaves = wave_count;
+  ww->radius = wave_radius;
+  ww->speed  = wave_speed;
+  ww->heights = (int *) calloc (sizeof(*ww->heights), ww->radius);
+  ww->srcs = (wave_src *) calloc (sizeof(*ww->srcs), ww->nwaves);
+
+  for (i = 0; i < ww->radius; i++)
+    {
+      float max = (cc->ncolors * (ww->radius - i) / (float) ww->radius);
+      ww->heights[i] = ((max + max * cos(i / 50.0)) / 2.0);
+    }
+
+  for (i = 0; i < ww->nwaves; i++)
+    {
+      ww->srcs[i].xth = frand(2.0) * M_PI;
+      ww->srcs[i].yth = frand(2.0) * M_PI;
+    }
+}
+
+static void
+interference (ModeInfo *mi)
+{
+  cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+  waves *ww = cc->waves;
+  int x, y, i;
+
+  /* Move the wave origins around
+   */
+  for (i = 0; i < ww->nwaves; i++)
+    {
+      ww->srcs[i].xth += (ww->speed / 1000.0);
+      if (ww->srcs[i].xth > 2*M_PI)
+        ww->srcs[i].xth -= 2*M_PI;
+      ww->srcs[i].yth += (ww->speed / 1000.0);
+      if (ww->srcs[i].yth > 2*M_PI)
+        ww->srcs[i].yth -= 2*M_PI;
+
+      ww->srcs[i].x = (cc->texture_width/2 +
+                       (cos (ww->srcs[i].xth) *
+                        cc->texture_width / 2));
+      ww->srcs[i].y = (cc->texture_height/2 +
+                       (cos (ww->srcs[i].yth) *
+                        cc->texture_height / 2));
+    }
+
+  /* Compute the effect of the waves on each pixel,
+     and generate the output map.
+   */
+  for (y = 0; y < cc->texture_height; y++)
+    for (x = 0; x < cc->texture_width; x++)
+      {
+        int result = 0;
+        unsigned char *o;
+        for (i = 0; i < ww->nwaves; i++)
+          {
+            int dx = x - ww->srcs[i].x;
+            int dy = y - ww->srcs[i].y;
+            int dist = sqrt (dx*dx + dy*dy);
+            result += (dist > ww->radius ? 0 : ww->heights[dist]);
+          }
+        result %= cc->ncolors;
+
+        o = cc->texture + (((y * cc->texture_width) + x) << 2);
+        o[0] = (cc->texture_colors[result].red   >> 8);
+        o[1] = (cc->texture_colors[result].green >> 8);
+        o[2] = (cc->texture_colors[result].blue  >> 8);
+     /* o[3] = 0xFF; */
+      }
+}
+
+\f
+/* Textures
+ */
+
+static void
+init_texture (ModeInfo *mi)
+{
+  cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+  int i;
+
+  glEnable(GL_TEXTURE_2D);
+
+  clear_gl_error();
+  glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+  glGenTextures (1, &cc->texture_id);
+  glBindTexture (GL_TEXTURE_2D, cc->texture_id);
+  check_gl_error("texture binding");
+
+  glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+  glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+  glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+  glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+  glTexGeni (GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+  glTexGeni (GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+  glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+  check_gl_error("texture initialization");
+
+  cc->texture_width  = texture_size;
+  cc->texture_height = texture_size;
+
+  i = texture_size * texture_size * 4;
+  cc->texture = (char *) malloc (i);
+  memset (cc->texture, 0xFF, i);
+}
+
+
+static void
+shuffle_texture (ModeInfo *mi)
+{
+  cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+  interference (mi);
+  clear_gl_error();
+  glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+                cc->texture_width, cc->texture_height, 0,
+                GL_RGBA, GL_UNSIGNED_BYTE,
+                cc->texture);
+  check_gl_error("texture");
+}
+
+
+void 
+init_cube (ModeInfo *mi)
+{
+  int i;
+  cube_configuration *cc;
+  int wire = MI_IS_WIREFRAME(mi);
+
+  if (!ccs) {
+    ccs = (cube_configuration *)
+      calloc (MI_NUM_SCREENS(mi), sizeof (cube_configuration));
+    if (!ccs) {
+      fprintf(stderr, "%s: out of memory\n", progname);
+      exit(1);
+    }
+  }
+
+  cc = &ccs[MI_SCREEN(mi)];
+
+  if ((cc->glx_context = init_GL(mi)) != NULL) {
+    reshape_cube (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+  }
+
+  if (!wire)
+    {
+      static GLfloat pos[4] = {1.0, 0.5, 1.0, 0.0};
+      static GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+      static GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+
+      glLightfv(GL_LIGHT0, GL_POSITION, pos);
+      glLightfv(GL_LIGHT0, GL_AMBIENT,  amb);
+      glLightfv(GL_LIGHT0, GL_DIFFUSE,  dif);
+
+      glEnable(GL_LIGHTING);
+      glEnable(GL_LIGHT0);
+      glEnable(GL_DEPTH_TEST);
+      glEnable(GL_CULL_FACE);
+    }
+
+
+  {
+    char *s = do_spin;
+    while (*s)
+      {
+        if      (*s == 'x' || *s == 'X') cc->spin_x = 1;
+        else if (*s == 'y' || *s == 'Y') cc->spin_y = 1;
+        else if (*s == 'z' || *s == 'Z') cc->spin_z = 1;
+        else
+          {
+            fprintf (stderr,
+         "%s: spin must contain only the characters X, Y, or Z (not \"%s\")\n",
+                     progname, do_spin);
+            exit (1);
+          }
+        s++;
+      }
+  }
+
+  cc->rotx = frand(1.0) * RANDSIGN();
+  cc->roty = frand(1.0) * RANDSIGN();
+  cc->rotz = frand(1.0) * RANDSIGN();
+
+  /* bell curve from 0-6 degrees, avg 3 */
+  cc->dx = (frand(0.7) + frand(0.7) + frand(0.7)) / (360/2);
+  cc->dy = (frand(0.7) + frand(0.7) + frand(0.7)) / (360/2);
+  cc->dz = (frand(0.7) + frand(0.7) + frand(0.7)) / (360/2);
+
+  cc->d_max = cc->dx * 2;
+
+  cc->ddx = 0.00006 + frand(0.00003);
+  cc->ddy = 0.00006 + frand(0.00003);
+  cc->ddz = 0.00006 + frand(0.00003);
+
+  cc->ncolors = 256;
+  cc->texture_colors = (XColor *) calloc(cc->ncolors, sizeof(XColor));
+  cc->cube_colors    = (XColor *) calloc(cc->ncolors, sizeof(XColor));
+
+  {
+    double H[3], S[3], V[3];
+    int shift = 60;
+    H[0] = frand(360.0); 
+    H[1] = ((H[0] + shift) < 360) ? (H[0]+shift) : (H[0] + shift - 360);
+    H[2] = ((H[1] + shift) < 360) ? (H[1]+shift) : (H[1] + shift - 360);
+    S[0] = S[1] = S[2] = 1.0;
+    V[0] = V[1] = V[2] = 1.0;
+    make_color_loop(0, 0,
+                   H[0], S[0], V[0], 
+                   H[1], S[1], V[1], 
+                   H[2], S[2], V[2], 
+                   cc->texture_colors, &cc->ncolors,
+                   False, False);
+
+    make_smooth_colormap (0, 0, 0,
+                          cc->cube_colors, &cc->ncolors, 
+                          False, 0, False);
+  }
+
+  cc->ncubes = MI_COUNT (mi);
+  cc->cubes = (cube *) calloc (sizeof(cube), cc->ncubes);
+  for (i = 0; i < cc->ncubes; i++)
+    {
+      cube *cube = &cc->cubes[i];
+      cube->color = random() % cc->ncolors;
+      cube->w = 1.0;
+      cube->h = 1.0;
+      cube->d = 1.0;
+      cube->dx = frand(0.1);
+      cube->dy = frand(0.1);
+      cube->dz = frand(0.1);
+      cube->dw = frand(0.1);
+      cube->dh = frand(0.1);
+      cube->dd = frand(0.1);
+    }
+
+  if (wire)
+    do_texture = False;
+    
+  if (do_texture)
+    {
+      init_texture (mi);
+      init_wave (mi);
+      shuffle_texture (mi);
+    }
+
+  cc->cube_list = glGenLists (1);
+  glNewList (cc->cube_list, GL_COMPILE);
+  unit_cube (wire);
+  glEndList ();
+}
+
+
+static void
+shuffle_cubes (ModeInfo *mi)
+{
+  cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+  int i;
+  for (i = 0; i < cc->ncubes; i++)
+    {
+#     define SINOID(SCALE,FRAME,SIZE) \
+        ((((1 + sin((FRAME * (SCALE)) / 2 * M_PI)) / 2.0) * (SIZE)) - (SIZE)/2)
+
+      cube *cube = &cc->cubes[i];
+      cube->x = SINOID(cube->dx, cube->frame, 0.5);
+      cube->y = SINOID(cube->dy, cube->frame, 0.5);
+      cube->z = SINOID(cube->dz, cube->frame, 0.5);
+      cube->w = SINOID(cube->dw, cube->frame, 0.9) + 1.0;
+      cube->h = SINOID(cube->dh, cube->frame, 0.9) + 1.0;
+      cube->d = SINOID(cube->dd, cube->frame, 0.9) + 1.0;
+      cube->frame++;
+#     undef SINOID
+    }
+}
+
+
+void
+draw_cube (ModeInfo *mi)
+{
+  cube_configuration *cc = &ccs[MI_SCREEN(mi)];
+  Display *dpy = MI_DISPLAY(mi);
+  Window window = MI_WINDOW(mi);
+  int i;
+
+  if (!cc->glx_context)
+    return;
+
+  glShadeModel(GL_FLAT);
+
+  glEnable(GL_DEPTH_TEST);
+  glEnable(GL_NORMALIZE);
+  glEnable(GL_CULL_FACE);
+
+  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+  glPushMatrix ();
+
+  glScalef(1.1, 1.1, 1.1);
+
+  {
+    GLfloat x, y, z;
+
+    if (do_wander)
+      {
+        static int frame = 0;
+
+#       define SINOID(SCALE,SIZE) \
+        ((((1 + sin((frame * (SCALE)) / 2 * M_PI)) / 2.0) * (SIZE)) - (SIZE)/2)
+
+        x = SINOID(0.0071, 8.0);
+        y = SINOID(0.0053, 6.0);
+        z = SINOID(0.0037, 15.0);
+        frame++;
+        glTranslatef(x, y, z);
+      }
+
+    if (cc->spin_x || cc->spin_y || cc->spin_z)
+      {
+        x = cc->rotx;
+        y = cc->roty;
+        z = cc->rotz;
+        if (x < 0) x = 1 - (x + 1);
+        if (y < 0) y = 1 - (y + 1);
+        if (z < 0) z = 1 - (z + 1);
+
+        if (cc->spin_x) glRotatef(x * 360, 1.0, 0.0, 0.0);
+        if (cc->spin_y) glRotatef(y * 360, 0.0, 1.0, 0.0);
+        if (cc->spin_z) glRotatef(z * 360, 0.0, 0.0, 1.0);
+
+        rotate(&cc->rotx, &cc->dx, &cc->ddx, cc->d_max);
+        rotate(&cc->roty, &cc->dy, &cc->ddy, cc->d_max);
+        rotate(&cc->rotz, &cc->dz, &cc->ddz, cc->d_max);
+      }
+  }
+
+  glScalef (2.5, 2.5, 2.5);
+
+  for (i = 0; i < cc->ncubes; i++)
+    {
+      cube *cube = &cc->cubes[i];
+      GLfloat color[4];
+      color[0] = cc->cube_colors[cube->color].red   / 65536.0;
+      color[1] = cc->cube_colors[cube->color].green / 65536.0;
+      color[2] = cc->cube_colors[cube->color].blue  / 65536.0;
+      color[3] = 1.0;
+      cube->color++;
+      if (cube->color >= cc->ncolors) cube->color = 0;
+
+      glPushMatrix ();
+      glTranslatef (cube->x, cube->y, cube->z);
+      glScalef (cube->w, cube->h, cube->d);
+      glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
+      glCallList (cc->cube_list);
+      glPopMatrix ();
+    }
+
+  shuffle_cubes (mi);
+  if (do_texture)
+    shuffle_texture (mi);
+
+  glPopMatrix();
+
+  if (mi->fps_p) do_fps (mi);
+  glFinish();
+
+  glXSwapBuffers(dpy, window);
+}
+
+#endif /* USE_GL */
index d189602aaa7d8ffe3bda68a875e978f009f8f930..746b7b2415edeef6909a2d8b2454b0d306ebe5f8 100644 (file)
@@ -1,4 +1,4 @@
-/* dangerball, Copyright (c) 2001 Jamie Zawinski <jwz@jwz.org>
+/* dangerball, Copyright (c) 2001, 2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -119,25 +119,6 @@ reshape_ball (ModeInfo *mi, int width, int height)
 }
 
 
-static void
-gl_init (ModeInfo *mi)
-{
-/*  ball_configuration *bp = &bps[MI_SCREEN(mi)]; */
-  int wire = MI_IS_WIREFRAME(mi);
-
-  static GLfloat pos[4] = {5.0, 5.0, 10.0, 1.0};
-
-  if (!wire)
-    {
-      glLightfv(GL_LIGHT0, GL_POSITION, pos);
-      glEnable(GL_CULL_FACE);
-      glEnable(GL_LIGHTING);
-      glEnable(GL_LIGHT0);
-      glEnable(GL_DEPTH_TEST);
-    }
-}
-
-
 /* lifted from lament.c */
 #define RAND(n) ((long) ((random() & 0x7fffffff) % ((long) (n))))
 #define RANDSIGN() ((random() & 1) ? 1 : -1)
@@ -296,10 +277,27 @@ init_ball (ModeInfo *mi)
 
   bp = &bps[MI_SCREEN(mi)];
 
-  if ((bp->glx_context = init_GL(mi)) != NULL) {
-    gl_init(mi);
-    reshape_ball (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
-  }
+  bp->glx_context = init_GL(mi);
+
+  reshape_ball (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+  if (!wire)
+    {
+      GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
+      GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+      GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+      GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
+
+      glEnable(GL_LIGHTING);
+      glEnable(GL_LIGHT0);
+      glEnable(GL_DEPTH_TEST);
+      glEnable(GL_CULL_FACE);
+
+      glLightfv(GL_LIGHT0, GL_POSITION, pos);
+      glLightfv(GL_LIGHT0, GL_AMBIENT,  amb);
+      glLightfv(GL_LIGHT0, GL_DIFFUSE,  dif);
+      glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+    }
 
   bp->rotx = frand(1.0) * RANDSIGN();
   bp->roty = frand(1.0) * RANDSIGN();
@@ -349,8 +347,16 @@ draw_ball (ModeInfo *mi)
   Window window = MI_WINDOW(mi);
   int c2;
 
-  static GLfloat color1[4] = {0.0, 0.0, 0.0, 1.0};
-  static GLfloat color2[4] = {0.0, 0.0, 0.0, 1.0};
+  /* #### I'm not getting specular reflections on the ball,
+          and I can't figure out why.
+   */
+
+  static GLfloat bcolor[4] = {0.0, 0.0, 0.0, 1.0};
+  static GLfloat scolor[4] = {0.0, 0.0, 0.0, 1.0};
+  static GLfloat bspec[4]  = {1.0, 1.0, 1.0, 1.0};
+  static GLfloat sspec[4]  = {0.0, 0.0, 0.0, 1.0};
+  static GLfloat bshiny    = 128.0;
+  static GLfloat sshiny    = 0.0;
 
   if (!bp->glx_context)
     return;
@@ -403,14 +409,14 @@ draw_ball (ModeInfo *mi)
       }
   }
 
-  color1[0] = bp->colors[bp->ccolor].red   / 65536.0;
-  color1[1] = bp->colors[bp->ccolor].green / 65536.0;
-  color1[2] = bp->colors[bp->ccolor].blue  / 65536.0;
+  bcolor[0] = bp->colors[bp->ccolor].red   / 65536.0;
+  bcolor[1] = bp->colors[bp->ccolor].green / 65536.0;
+  bcolor[2] = bp->colors[bp->ccolor].blue  / 65536.0;
 
   c2 = (bp->ccolor + bp->color_shift) % bp->ncolors;
-  color2[0] = bp->colors[c2].red   / 65536.0;
-  color2[1] = bp->colors[c2].green / 65536.0;
-  color2[2] = bp->colors[c2].blue  / 65536.0;
+  scolor[0] = bp->colors[c2].red   / 65536.0;
+  scolor[1] = bp->colors[c2].green / 65536.0;
+  scolor[2] = bp->colors[c2].blue  / 65536.0;
 
   bp->ccolor++;
   if (bp->ccolor >= bp->ncolors) bp->ccolor = 0;
@@ -419,10 +425,14 @@ draw_ball (ModeInfo *mi)
 
   move_spikes (mi);
 
-  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color1);
+  glMaterialfv (GL_FRONT, GL_SPECULAR,            bspec);
+  glMateriali  (GL_FRONT, GL_SHININESS,           bshiny);
+  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, bcolor);
   glCallList (bp->ball_list);
 
-  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color2);
+  glMaterialfv (GL_FRONT, GL_SPECULAR,            sspec);
+  glMaterialf  (GL_FRONT, GL_SHININESS,           sshiny);
+  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, scolor);
   draw_spikes (mi);
   glPopMatrix ();
 
index 81cdeb918a8d22a0869b9f901159cf8d4bbb40d0..0f35ffb642371ab47dbd209c6be2dcf0c8822e83 100644 (file)
@@ -454,10 +454,20 @@ void Create_Texture(char *filename, int do_mipmap, int do_texture_quality)
   }
 
   if (do_mipmap) {
-    gluBuild2DMipmaps(GL_TEXTURE_2D, format, width, height, 
-                     format, GL_UNSIGNED_BYTE, image);
-  }
-  else {
+    int status;
+    clear_gl_error();
+    status = gluBuild2DMipmaps(GL_TEXTURE_2D, format, width, height, 
+                               format, GL_UNSIGNED_BYTE, image);
+    if (status)
+      {
+        const char *s = gluErrorString (status);
+        fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+                 progname, width, height,
+                 (s ? s : "(unknown)"));
+        exit (1);
+      }
+    check_gl_error("mipmapping");
+  } else {
     clear_gl_error();
     glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0,
                 format, GL_UNSIGNED_BYTE, image);
index 2134fbcfae256ebaba876c623352c86aa27aa864..8ccc710e2880befed674fa7da1d87638f0c1bbc6 100644 (file)
@@ -389,6 +389,12 @@ void getSnapshot (ModeInfo *modeinfo)
  status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
                             ximage->width, ximage->height,
                             GL_RGBA, GL_UNSIGNED_BYTE, ximage->data);
+
+ if (!status && glGetError())
+   /* Some implementations of gluBuild2DMipmaps(), but set a GL error anyway.
+      We could just call check_gl_error(), but that would exit. */
+   status = -1;
+
  if (status)
    {
      const char *s = gluErrorString (status);
index 16ee1b0827fb7b852eaf8ab6a60c1f0ef1a7cba4..7da5123b7da09eea6d468fc643d875174bb1558c 100644 (file)
@@ -32,7 +32,6 @@ extern void check_gl_error (const char *type);
 static int fps_text_x = 10;
 static int fps_text_y = 10;
 static int fps_ascent, fps_descent;
-static int fps_sample_frames = 10;
 static GLuint font_dlist;
 static Bool fps_clear_p = False;
 
@@ -72,13 +71,12 @@ fps_init (ModeInfo *mi)
 static void
 fps_print_string (ModeInfo *mi, GLfloat x, GLfloat y, const char *string)
 {
-  /* save the current state */
-  /* note: could be expensive! */
-
   if (y < 0)
     y = mi->xgwa.height + y;
 
+# ifdef DEBUG
   clear_gl_error ();
+# endif
 
   /* Sadly, this causes a stall of the graphics pipeline (as would the
      equivalent calls to glGet*.)  But there's no way around this, short
@@ -133,7 +131,7 @@ fps_print_string (ModeInfo *mi, GLfloat x, GLfloat y, const char *string)
         if (fps_clear_p)
           {
             glColor3f (0, 0, 0);
-            glRecti (x, y - fps_descent,
+            glRecti (x / 2, y - fps_descent,
                      mi->xgwa.width - x,
                      y + fps_ascent + fps_descent);
           }
@@ -165,23 +163,26 @@ fps_print_string (ModeInfo *mi, GLfloat x, GLfloat y, const char *string)
 void
 do_fps (ModeInfo *mi)
 {
-  /* every N frames, get the time and use it to get the frames per second */
-  static int frame_counter = -1;
-  static double oldtime = 0; /* time in usecs, as a double */
-  static double newtime = 0;
-
+  static Bool initted_p = False;
+  static int last_ifps = 0;
+  static int frame_count = 0;
+  static struct timeval prev = { 0, };
+  static struct timeval now  = { 0, };
   static char msg [1024] = { 0, };
 
-  if (frame_counter == -1)
+  if (!initted_p)
     {
+      initted_p = True;
       fps_init (mi);
-      frame_counter = fps_sample_frames;
+      strcpy (msg, "FPS: (accumulating...)");
     }
 
-  if (frame_counter++ == fps_sample_frames)
+  /* Every N frames (where N is approximately one second's worth of frames)
+     check the wall clock.  We do this because checking the wall clock is
+     a slow operation.
+   */
+  if (frame_count++ >= last_ifps)
     {
-      double fps;
-      struct timeval now;
 # ifdef GETTIMEOFDAY_TWO_ARGS
       struct timezone tzp;
       gettimeofday(&now, &tzp);
@@ -189,34 +190,38 @@ do_fps (ModeInfo *mi)
       gettimeofday(&now);
 # endif
 
-      oldtime = newtime;
-      newtime = now.tv_sec + ((double) now.tv_usec * 0.000001);
+      if (prev.tv_sec == 0)
+        prev = now;
+    }
+
+  /* If we've probed the wall-clock time, regenerate the string.
+   */
+  if (now.tv_sec != prev.tv_sec)
+    {
+      double uprev = prev.tv_sec + ((double) prev.tv_usec * 0.000001);
+      double unow  =  now.tv_sec + ((double)  now.tv_usec * 0.000001);
+      double fps   = frame_count / (unow - uprev);
 
-      fps = fps_sample_frames / (newtime - oldtime);
+      prev = now;
+      frame_count = 0;
+      last_ifps = fps;
 
-      if (fps < 0.0001)
-        {
-          strcpy(msg, "FPS: (accumulating...)");
-        }
-      else
+      sprintf (msg, "FPS: %.02f", fps);
+
+      if (mi->pause != 0)
         {
-          sprintf(msg, "FPS: %.02f", fps);
-
-          if (mi->pause != 0)
-            {
-              char buf[40];
-              sprintf(buf, "%f", mi->pause / 1000000.0); /* FTSO C */
-              while(*buf && buf[strlen(buf)-1] == '0')
-                buf[strlen(buf)-1] = 0;
-              if (buf[strlen(buf)-1] == '.')
-                buf[strlen(buf)-1] = 0;
-              sprintf(msg + strlen(msg), " (including %s sec/frame delay)",
-                      buf);
-            }
+          char buf[40];
+          sprintf(buf, "%f", mi->pause / 1000000.0); /* FTSO C */
+          while(*buf && buf[strlen(buf)-1] == '0')
+            buf[strlen(buf)-1] = 0;
+          if (buf[strlen(buf)-1] == '.')
+            buf[strlen(buf)-1] = 0;
+          sprintf(msg + strlen(msg), " (including %s sec/frame delay)",
+                  buf);
         }
-
-      frame_counter = 0;
     }
 
+  /* Print the string every frame (or else nothing will show up.)
+   */
   fps_print_string (mi, fps_text_x, fps_text_y, msg);
 }
index 0685386f3710d20f72520485f04cac0082178da5..20632b9a56b0b792aba4f530c4213512d49029f4 100644 (file)
@@ -52,7 +52,7 @@
                                        "*showFPS:                      False   \n" \
                     "*rotate:           True    \n" \
                     "*roll:             True    \n" \
-                    "*bounce:           True    \n" \
+                    "*wander:           True    \n" \
                                        "*wireframe:            False   \n"     \
                                        "*light:                        True    \n"     \
                                        "*texture:                      True    \n" \
@@ -83,9 +83,9 @@
 
 #define DEF_ROTATE  "True"
 #define DEF_ROLL    "True"
-#define DEF_BOUNCE  "True"
+#define DEF_WANDER  "True"
 #define DEF_TEXTURE "True"
-#define DEF_STARS "True"
+#define DEF_STARS   "True"
 #define DEF_LIGHT   "True"
 #define DEF_IMAGE   "BUILTIN"
 
@@ -94,7 +94,7 @@
 
 static int do_rotate;
 static int do_roll;
-static int do_bounce;
+static int do_wander;
 static int do_texture;
 static int do_stars;
 static int do_light;
@@ -104,8 +104,8 @@ static XrmOptionDescRec opts[] = {
   {"+rotate",  ".glplanet.rotate",  XrmoptionNoArg, (caddr_t) "false" },
   {"-roll",    ".glplanet.roll",    XrmoptionNoArg, (caddr_t) "true" },
   {"+roll",    ".glplanet.roll",    XrmoptionNoArg, (caddr_t) "false" },
-  {"-bounce",  ".glplanet.bounce",  XrmoptionNoArg, (caddr_t) "true" },
-  {"+bounce",  ".glplanet.bounce",  XrmoptionNoArg, (caddr_t) "false" },
+  {"-wander",  ".glplanet.wander",  XrmoptionNoArg, (caddr_t) "true" },
+  {"+wander",  ".glplanet.wander",  XrmoptionNoArg, (caddr_t) "false" },
   {"-texture", ".glplanet.texture", XrmoptionNoArg, (caddr_t) "true" },
   {"+texture", ".glplanet.texture", XrmoptionNoArg, (caddr_t) "false" },
   {"-stars",   ".glplanet.stars",   XrmoptionNoArg, (caddr_t) "true" },
@@ -118,7 +118,7 @@ static XrmOptionDescRec opts[] = {
 static argtype vars[] = {
   {(caddr_t *) &do_rotate,   "rotate",  "Rotate",  DEF_ROTATE,  t_Bool},
   {(caddr_t *) &do_roll,     "roll",    "Roll",    DEF_ROLL,    t_Bool},
-  {(caddr_t *) &do_bounce,   "bounce",  "Bounce",  DEF_BOUNCE,  t_Bool},
+  {(caddr_t *) &do_wander,   "wander",  "Wander",  DEF_WANDER,  t_Bool},
   {(caddr_t *) &do_texture,  "texture", "Texture", DEF_TEXTURE, t_Bool},
   {(caddr_t *) &do_stars,  "stars", "Stars", DEF_STARS, t_Bool},
   {(caddr_t *) &do_light,    "light",   "Light",   DEF_LIGHT,   t_Bool},
@@ -135,7 +135,7 @@ ModStruct   planet_description =
  "Animates texture mapped sphere (planet)", 0, NULL};
 #endif
 
-#include "../images/earth.xbm"
+#include "../images/earth.xpm"
 #include "xpm-ximage.h"
 
 
@@ -173,6 +173,8 @@ typedef struct {
   GLfloat dx, dy, dz;
   GLfloat box_width, box_height, box_depth;
 
+  GLfloat sunpos[4];
+
 } planetstruct;
 
 
@@ -182,49 +184,32 @@ static planetstruct *planets = NULL;
 static inline void
 normalize(GLfloat v[3])
 {
-       GLfloat     d = (GLfloat) sqrt((double) (v[0] * v[0] + v[1] * v[1] + v[2] * v[2]));
-
-       if (d != 0) {
-               v[0] /= d;
-               v[1] /= d;
-               v[2] /= d;
-       } else {
-               v[0] = v[1] = v[2] = 0;
+  GLfloat d = (GLfloat) sqrt((double) (v[0] * v[0] +
+                                       v[1] * v[1] +
+                                       v[2] * v[2]));
+  if (d != 0)
+    {
+      v[0] /= d;
+      v[1] /= d;
+      v[2] /= d;
+       }
+  else
+    {
+      v[0] = v[1] = v[2] = 0;
        }
 }
 
 
 /* Set up and enable texturing on our object */
 static void
-setup_xbm_texture (char *bits, int width, int height,
-                                  XColor *fgc, XColor *bgc)
+setup_xpm_texture (ModeInfo *mi, char **xpm_data)
 {
-  unsigned int fg = (((fgc->red  >> 8) << 16) |
-                                        ((fgc->green >> 8) << 8) |
-                                        ((fgc->blue >> 8)));
-  unsigned int bg = (((bgc->red  >> 8) << 16) |
-                                        ((bgc->green >> 8) << 8) |
-                                        ((bgc->blue >> 8)));
-
-  unsigned char *data = (unsigned char *)
-       malloc ((width * height * 24) / 8);
-  unsigned char *out = data;
-  int x, y;
-
-  for (y = 0; y < height; y++)
-       for (x = 0; x < width; x++)
-         {
-               unsigned char byte = bits [(y * (width / 8) + (x / 8))];
-               unsigned char bit = (byte & (1 << (x % 8))) >> (x % 8);
-               unsigned int word = (bit ? bg : fg);
-               *out++ = (word & 0xFF0000) >> 16;
-               *out++ = (word & 0x00FF00) >> 8;
-               *out++ = (word & 0x0000FF);
-         }
-
+  XImage *image = xpm_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
+                                  MI_COLORMAP (mi), xpm_data);
   clear_gl_error();
-  glTexImage2D(GL_TEXTURE_2D, 0, 3, width, height, 0,
-                          GL_RGB, GL_UNSIGNED_BYTE, data);
+  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+               image->width, image->height, 0,
+               GL_RGBA, GL_UNSIGNED_BYTE, image->data);
   check_gl_error("texture");
 
   /* setup parameters for texturing */
@@ -267,92 +252,47 @@ setup_file_texture (ModeInfo *mi, char *filename)
 static void
 setup_texture(ModeInfo * mi)
 {
-  planetstruct *gp = &planets[MI_SCREEN(mi)];
+/*  planetstruct *gp = &planets[MI_SCREEN(mi)];*/
+
+  glEnable(GL_TEXTURE_2D);
+
   if (!which_image ||
          !*which_image ||
          !strcmp(which_image, "BUILTIN"))
-       setup_xbm_texture (earth_bits, earth_width, earth_height,
-                                          &gp->fg, &gp->bg);
+       setup_xpm_texture (mi, earth_xpm);
   else
        setup_file_texture (mi, which_image);
-}
-
-
-/* Set up and enable lighting */
-static void
-setup_light(void)
-{
-  /* set a number of parameters which make the scene look much nicer */
-  glEnable(GL_BLEND);
-  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-  glShadeModel(GL_SMOOTH);
-}
 
-
-/* Set up and enable face culling so we don't see the inside of the sphere */
-static void
-setup_face(void)
-{
-  glEnable(GL_CULL_FACE);
-  glCullFace(GL_BACK); 
+  check_gl_error("texture initialization");
 }
 
 
-#if 0
-/* Function for determining points on the surface of the sphere */
-static void inline ParametricSphere(float theta, float rho, GLfloat *vector)
-{
-  vector[0] = -sin(theta) * sin(rho);
-  vector[1] = cos(theta) * sin(rho);
-  vector[2] = cos(rho);
-
-#if DO_HELIX
-  vector[0] = -(1- cos(theta)) * cos(rho); 
-  vector[1] = -(1- cos(theta)) * sin(rho); 
-  vector[2] = -(sin(theta) + rho); 
-#endif /* DO_HELIX */
-
-       return;
-}
-#endif
-
-
-/* lame way to generate some random stars */
-void generate_stars(int width, int height)
+void
+init_stars (ModeInfo *mi)
 {
   int i, j;
-  int max_size = 3;
+  GLfloat max_size = 3;
   GLfloat inc = 0.5;
   int steps = max_size / inc;
+  int width  = MI_WIDTH(mi);
+  int height = MI_HEIGHT(mi);
 
   planetstruct *gp = &planets[MI_SCREEN(mi)];
+  Bool wire = MI_IS_WIREFRAME(mi);
   
+  if (!wire)
+    glEnable (GL_POINT_SMOOTH);
+
   gp->starlist = glGenLists(1);
   glNewList(gp->starlist, GL_COMPILE);
 
-  /* this hackery makes the viewport map one-to-one with Vertex arguments */
-  glMatrixMode(GL_PROJECTION);
-  glPushMatrix();
-  glMatrixMode(GL_PROJECTION);
-  glLoadIdentity();
-  gluOrtho2D(0, width, 0, height);
-  glMatrixMode(GL_MODELVIEW);
-  glLoadIdentity();
-
-  /* disable depth testing for the stars, so they don't obscure the planet */
-  glDisable(GL_DEPTH_TEST);
-  glEnable(GL_BLEND);
-  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-  
-  glColor3f(1,1,1);
-
-  glEnable(GL_POINT_SMOOTH);
+  glScalef (1.0/width, 1.0/height, 1);
 
   for (j = 1; j <= steps; j++)
     {
       glPointSize(inc * j);
       glBegin(GL_POINTS);
-      for(i = 0 ; i < NUM_STARS / steps; i++)
+      for (i = 0 ; i < NUM_STARS / steps; i++)
         {
           glColor3f (0.6 + frand(0.3),
                      0.6 + frand(0.3),
@@ -362,88 +302,117 @@ void generate_stars(int width, int height)
         }
       glEnd();
     }
-
-  /* return to original PROJECT and MODELVIEW */
-  glMatrixMode(GL_PROJECTION);
-  glPopMatrix();
-  glMatrixMode(GL_MODELVIEW);
-
-
   glEndList();
 
-}
-
-/* Set up lighting */
-static void
-init_sun (ModeInfo * mi)
-{
-  GLfloat light[4];
-  light[0] = frand(2.0) - 1.0;
-  light[1] = frand(2.0) - 1.0;
-  light[2] = 1.0;
-  light[3] = 0;
-
-  glLightfv(GL_LIGHT0, GL_POSITION, light);
+  check_gl_error("stars initialization");
 }
 
 
-/* Initialization function for screen saver */
-static void
-pinit(ModeInfo * mi)
+void
+draw_stars (ModeInfo * mi)
 {
-  Bool wire = MI_IS_WIREFRAME(mi);
+  int width  = MI_WIDTH(mi);
+  int height = MI_HEIGHT(mi);
+
   planetstruct *gp = &planets[MI_SCREEN(mi)];
+  
+  /* Sadly, this causes a stall of the graphics pipeline (as would the
+     equivalent calls to glGet*.)  But there's no way around this, short
+     of having each caller set up the specific display matrix we need
+     here, which would kind of defeat the purpose of centralizing this
+     code in one file.
+   */
+  glPushAttrib(GL_TRANSFORM_BIT |  /* for matrix contents */
+               GL_ENABLE_BIT |     /* for various glDisable calls */
+               GL_CURRENT_BIT |    /* for glColor3f() */
+               GL_LIST_BIT);       /* for glListBase() */
+  {
+    check_gl_error ("glPushAttrib");
+
+    /* disable lighting and texturing when drawing stars!
+       (glPopAttrib() restores these.)
+     */
+    glDisable(GL_TEXTURE_2D);
+    glDisable(GL_LIGHTING);
+    glDisable(GL_DEPTH_TEST);
+
+    /* glPopAttrib() does not restore matrix changes, so we must
+       push/pop the matrix stacks to be non-intrusive there.
+     */
+    glMatrixMode(GL_PROJECTION);
+    glPushMatrix();
+    {
+      check_gl_error ("glPushMatrix");
+      glLoadIdentity();
 
-  if (wire) {
-       glEnable(GL_LINE_SMOOTH);
-       do_texture = False;
-  }
+      /* Each matrix mode has its own stack, so we need to push/pop
+         them separately. */
+      glMatrixMode(GL_MODELVIEW);
+      glPushMatrix();
+      {
+        check_gl_error ("glPushMatrix");
+        glLoadIdentity();
 
-  /* turn on various options we like */
-  if (do_texture)
-       setup_texture(mi);
-  if (do_light)
-       setup_light();
+        gluOrtho2D (0, width, 0, height);
+        check_gl_error ("gluOrtho2D");
 
-  setup_face();
+        /* Draw the stars */
+        glScalef (width, height, 1);
+        glCallList(gp->starlist);
+        check_gl_error ("drawing stars");
+      }
+      glPopMatrix();
+    }
+    glMatrixMode(GL_PROJECTION);
+    glPopMatrix();
 
-  if (do_stars) {
-       glEnable(GL_POINT_SMOOTH);
-       generate_stars(MI_WIDTH(mi), MI_HEIGHT(mi));
   }
+  /* clean up after our state changes */
+  glPopAttrib();
+  check_gl_error ("glPopAttrib");
+}
 
-  gp->platelist=glGenLists(1);
-  glNewList(gp->platelist, GL_COMPILE);
-  glPushMatrix ();
-  glScalef (RADIUS, RADIUS, RADIUS);
-  unit_sphere (STACKS, SLICES, wire);
-  glPopMatrix ();
-  glEndList();
 
-  init_sun (mi);
-}
 
+/* Set up lighting */
 static void
-draw_sphere(ModeInfo * mi)
+init_sun (ModeInfo * mi)
 {
   planetstruct *gp = &planets[MI_SCREEN(mi)];
 
-  glEnable(GL_DEPTH_TEST);
+  GLfloat lamb[4] = { 0.0, 0.0, 0.0, 1.0 };
+  GLfloat ldif[4] = { 1.0, 1.0, 1.0, 1.0 };
+  GLfloat spec[4] = { 1.0, 1.0, 1.0, 1.0 };
 
-  /* turn on the various attributes for making the sphere look nice */
-  if (do_texture)
-       glEnable(GL_TEXTURE_2D);
+  GLfloat mamb[4] = { 0.5, 0.5, 0.5, 1.0 };
+  GLfloat mdif[4] = { 1.0, 1.0, 1.0, 1.0 };
+  GLfloat mpec[4] = { 1.0, 1.0, 1.0, 1.0 };
+  GLfloat shiny = .4;
 
-  if (do_light)
-       {
-         glEnable(GL_LIGHTING);
-         glEnable(GL_LIGHT0);
-         glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
-         glEnable(GL_COLOR_MATERIAL);
-       }
+  gp->sunpos[0] =  1.00 - frand(2.00);
+  gp->sunpos[1] =  0.25 - frand(0.50);
+  gp->sunpos[2] = -1.00;
+  gp->sunpos[3] =  0.00;
+
+  glEnable(GL_LIGHTING);
+  glEnable(GL_LIGHT0);
+
+  glLightfv (GL_LIGHT0, GL_POSITION, gp->sunpos);
+  glLightfv (GL_LIGHT0, GL_AMBIENT,  lamb);
+  glLightfv (GL_LIGHT0, GL_DIFFUSE,  ldif);
+  glLightfv (GL_LIGHT0, GL_SPECULAR, spec);
+
+  glMaterialfv (GL_FRONT, GL_AMBIENT,  mamb);
+  glMaterialfv (GL_FRONT, GL_DIFFUSE,  mdif);
+  glMaterialfv (GL_FRONT, GL_SPECULAR, mpec);
+  glMaterialf  (GL_FRONT, GL_SHININESS, shiny);
 
-  glCallList(gp->platelist);
 
+  glEnable(GL_BLEND);
+  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+  glShadeModel(GL_SMOOTH);
+
+  check_gl_error("lighting");
 }
 
 
@@ -495,7 +464,7 @@ rotate_and_move (ModeInfo * mi)
          while (gp->tz > 360) gp->tz -= 360;
        }
 
-  if (do_bounce)
+  if (do_wander)
        {
       static int frame = 0;
 #     define SINOID(SCALE,SIZE) \
@@ -508,9 +477,8 @@ rotate_and_move (ModeInfo * mi)
 }
 
 
-/* Standard reshape function */
 void
-reshape_planet(ModeInfo *mi, int width, int height)
+reshape_planet (ModeInfo *mi, int width, int height)
 {
   GLfloat h = (GLfloat) height / (GLfloat) width;
 
@@ -520,17 +488,18 @@ reshape_planet(ModeInfo *mi, int width, int height)
   glFrustum(-1.0, 1.0, -h, h, 5.0, 100.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
-  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glTranslatef(0.0, 0.0, -DIST);
+
+  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 }
 
 
 void
-init_planet(ModeInfo * mi)
+init_planet (ModeInfo * mi)
 {
-  int         screen = MI_SCREEN(mi);
-
   planetstruct *gp;
+  int screen = MI_SCREEN(mi);
+  Bool wire = MI_IS_WIREFRAME(mi);
 
   if (planets == NULL) {
        if ((planets = (planetstruct *) calloc(MI_NUM_SCREENS(mi),
@@ -541,6 +510,10 @@ init_planet(ModeInfo * mi)
 
   pick_velocity (mi);
 
+  if ((gp->glx_context = init_GL(mi)) != NULL) {
+       reshape_planet(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+  }
+
   {
        char *f = get_string_resource("imageForeground", "Foreground");
        char *b = get_string_resource("imageBackground", "Background");
@@ -570,18 +543,38 @@ init_planet(ModeInfo * mi)
        free (b);
   }
 
+  if (wire)
+    {
+      do_texture = False;
+      do_light = False;
+      glEnable (GL_LINE_SMOOTH);
+    }
 
-  gp->window = MI_WINDOW(mi);
-  if ((gp->glx_context = init_GL(mi)) != NULL) {
-       reshape_planet(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
-       pinit(mi);
-  } else {
-       MI_CLEARWINDOW(mi);
-  }
+  if (do_texture)
+    setup_texture (mi);
+
+  if (do_light)
+       init_sun (mi);
+
+  if (do_stars)
+    init_stars (mi);
+
+  glEnable(GL_DEPTH_TEST);
+  glEnable(GL_CULL_FACE);
+  glCullFace(GL_BACK); 
+
+  gp->platelist = glGenLists(1);
+  glNewList (gp->platelist, GL_COMPILE);
+  glColor3f (1,1,1);
+  glPushMatrix ();
+  glScalef (RADIUS, RADIUS, RADIUS);
+  unit_sphere (STACKS, SLICES, wire);
+  glPopMatrix ();
+  glEndList();
 }
 
 void
-draw_planet(ModeInfo * mi)
+draw_planet (ModeInfo * mi)
 {
   planetstruct *gp = &planets[MI_SCREEN(mi)];
   Display    *display = MI_DISPLAY(mi);
@@ -593,35 +586,23 @@ draw_planet(ModeInfo * mi)
   glDrawBuffer(GL_BACK);
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
-  glXMakeCurrent(display, window, *(gp->glx_context));
-
+  glXMakeCurrent (display, window, *(gp->glx_context));
 
-  if (do_stars) {
-       /* protect our modelview matrix and attributes */
-       glPushMatrix();
-    glCallList(gp->starlist);
-       glPopMatrix();
-  }
+  if (do_stars)
+    draw_stars (mi);
 
-  /* protect our modelview matrix and attributes */
   glPushMatrix();
-  glPushAttrib(GL_ALL_ATTRIB_BITS);
-  {
-       /* this pair of rotations seem to be necessary to orient the earth correctly */
-       glRotatef(90,0,0,1);
-       glRotatef(90,0,1,0);
-
-       glTranslatef(gp->xpos, gp->ypos, gp->zpos);
-       glRotatef(gp->tx, 1, 0, 0);
-       glRotatef(gp->ty, 0, 1, 0);
-       glRotatef(gp->tz, 0, 0, 1);
-       /* draw the sphere */
-       draw_sphere(mi);
-  }
-  glPopMatrix();
-  glPopAttrib();
+  glRotatef (90,1,0,0);
+  glTranslatef (gp->xpos, gp->ypos, gp->zpos);
+
+  glRotatef (gp->tx, 1, 0, 0);
+  glRotatef (gp->ty, 0, 1, 0);
+  glRotatef (gp->tz, 0, 0, 1);
 
+  glLightfv (GL_LIGHT0, GL_POSITION, gp->sunpos);
 
+  glCallList (gp->platelist);
+  glPopMatrix();
 
   if (mi->fps_p) do_fps (mi);
   glFinish();
@@ -630,11 +611,12 @@ draw_planet(ModeInfo * mi)
   rotate_and_move (mi);
 }
 
+
 void
-release_planet(ModeInfo * mi)
+release_planet (ModeInfo * mi)
 {
   if (planets != NULL) {
-       int         screen;
+       int screen;
 
        for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) {
          planetstruct *gp = &planets[screen];
index d54082b15481b474cc336fec6705edf308ab3e28..66c125551948e771a6bce7891ecc6e44d5eab0ef 100644 (file)
@@ -53,7 +53,7 @@ extern XtAppContext app;
                        "*zspin:      " DEF_ZSPIN "   \n" \
                        "*scarycolour:" DEF_SCARYCOLOUR " \n" \
                        "*labels:     " DEF_LABELS "  \n" \
-                       "*labelfont:  -*-helvetica-medium-r-*-*-*-120-*\n" \
+                       "*labelfont:  -*-times-bold-r-normal-*-180-*\n" \
 
 
 
@@ -65,7 +65,7 @@ extern XtAppContext app;
 #ifdef USE_GL /* whole file */
 
 #include <GL/glu.h>
-#include <sys/timeb.h>
+#include <sys/time.h>
 #include <string.h>
 #include <unistd.h>
 #include <stdio.h>
@@ -98,8 +98,8 @@ typedef struct {
        int is_legal;
        int last_turn;
        int selected;
-       struct timeb last_iteration;
-       struct timeb last_morph;
+       struct timeval last_iteration;
+       struct timeval last_morph;
        int morphing;
        nodeang_t node[24];
        GLfloat roty;
@@ -693,8 +693,17 @@ void glsnake_init(ModeInfo *mi) {
        bp->dragging = 0;
        bp->interactive = 0;
 
-       ftime(&(bp->last_iteration));
-       memcpy(&(bp->last_morph), &(bp->last_iteration), sizeof(struct timeb));
+        {
+# ifdef GETTIMEOFDAY_TWO_ARGS
+          struct timezone tzp;
+          gettimeofday(&bp->last_iteration, &tzp);
+# else
+          gettimeofday(&bp->last_iteration);
+# endif
+        }
+
+       memcpy(&bp->last_morph, &(bp->last_iteration),
+               sizeof(bp->last_morph));
        /* srand((unsigned int) bp->last_iteration.time); */
 
        /* load the model files */
@@ -871,7 +880,7 @@ void glsnake_idol(glsnake_configuration * bp) {
        long morf_msec;
        float iter_angle_max;
        int i;
-       struct timeb current_time;
+       struct timeval current_time;
        int still_morphing;
 
        /* Do nothing to the model if we are paused */
@@ -880,8 +889,15 @@ void glsnake_idol(glsnake_configuration * bp) {
                usleep(1);
                return;
        }
-       /* ftime is winDOS compatible */
-       ftime(&current_time);
+
+        {
+# ifdef GETTIMEOFDAY_TWO_ARGS
+          struct timezone tzp;
+          gettimeofday(&current_time, &tzp);
+# else
+          gettimeofday(&current_time);
+# endif
+        }
 
        /* <spiv> Well, ftime gives time with millisecond resolution.
         * <Jaq> if current time is exactly equal to last iteration, 
@@ -892,18 +908,20 @@ void glsnake_idol(glsnake_configuration * bp) {
         *             it would be the same
         * <spiv>   b) The code will divide by zero
         */
-       iter_msec = (long) current_time.millitm - bp->last_iteration.millitm + 
-                   ((long) current_time.time - bp->last_iteration.time) * 1000L;
+       iter_msec = ((long) current_time.tv_usec - bp->last_iteration.tv_usec)/1000L + 
+                   ((long) current_time.tv_sec - bp->last_iteration.tv_sec) * 1000L;
        if (iter_msec) {
                /* save the current time */
-               memcpy(&(bp->last_iteration), &current_time, sizeof(struct timeb));
+               memcpy(&bp->last_iteration, &current_time,
+                       sizeof(bp->last_iteration));
                
                /* work out if we have to switch models */
-               morf_msec = bp->last_iteration.millitm - bp->last_morph.millitm +
-                       ((long) (bp->last_iteration.time - bp->last_morph.time) * 1000L);
+               morf_msec = (bp->last_iteration.tv_usec - bp->last_morph.tv_usec)/1000L +
+                       ((long) (bp->last_iteration.tv_sec - bp->last_morph.tv_sec) * 1000L);
 
                if ((morf_msec > statictime) && !bp->interactive) {
-                       memcpy(&(bp->last_morph), &(bp->last_iteration), sizeof(struct timeb));
+                       memcpy(&bp->last_morph, &(bp->last_iteration),
+                               sizeof(bp->last_morph));
                        start_morph(RAND(bp->m_count), 0, bp);
                }
 
index 96ddaccd5e3c610e60f95e27c1c931b204462fc8..e1364c44c0db7d83942e0796986e42ceac040a8c 100644 (file)
@@ -1,4 +1,4 @@
-/* menger, Copyright (c) 2001 Jamie Zawinski <jwz@jwz.org>
+/* menger, Copyright (c) 2001, 2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -189,25 +189,6 @@ reshape_sponge (ModeInfo *mi, int width, int height)
 }
 
 
-static void
-gl_init (ModeInfo *mi)
-{
-/*  sponge_configuration *sp = &sps[MI_SCREEN(mi)]; */
-  int wire = MI_IS_WIREFRAME(mi);
-
-  static GLfloat pos[4] = {-4.0, 3.0, 10.0, 1.0};
-
-  if (!wire)
-    {
-      glLightfv(GL_LIGHT0, GL_POSITION, pos);
-      glEnable(GL_CULL_FACE);
-      glEnable(GL_LIGHTING);
-      glEnable(GL_LIGHT0);
-      glEnable(GL_DEPTH_TEST);
-    }
-}
-
-
 /* lifted from lament.c */
 #define RAND(n) ((long) ((random() & 0x7fffffff) % ((long) (n))))
 #define RANDSIGN() ((random() & 1) ? 1 : -1)
@@ -524,6 +505,7 @@ void
 init_sponge (ModeInfo *mi)
 {
   sponge_configuration *sp;
+  int wire = MI_IS_WIREFRAME(mi);
 
   if (!sps) {
     sps = (sponge_configuration *)
@@ -539,10 +521,29 @@ init_sponge (ModeInfo *mi)
   sp = &sps[MI_SCREEN(mi)];
 
   if ((sp->glx_context = init_GL(mi)) != NULL) {
-    gl_init(mi);
     reshape_sponge (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
   }
 
+  if (!wire)
+    {
+      static GLfloat pos0[4] = {-1.0, -1.0, 1.0, 0.1};
+      static GLfloat pos1[4] = { 1.0, -0.2, 0.2, 0.1};
+      static GLfloat dif0[4] = {1.0, 1.0, 1.0, 1.0};
+      static GLfloat dif1[4] = {1.0, 1.0, 1.0, 1.0};
+
+      glLightfv(GL_LIGHT0, GL_POSITION, pos0);
+      glLightfv(GL_LIGHT1, GL_POSITION, pos1);
+      glLightfv(GL_LIGHT0, GL_DIFFUSE, dif0);
+      glLightfv(GL_LIGHT1, GL_DIFFUSE, dif1);
+
+      glEnable(GL_LIGHTING);
+      glEnable(GL_LIGHT0);
+      glEnable(GL_LIGHT1);
+
+      glEnable(GL_DEPTH_TEST);
+      glEnable(GL_CULL_FACE);
+    }
+
   sp->rotx = frand(1.0) * RANDSIGN();
   sp->roty = frand(1.0) * RANDSIGN();
   sp->rotz = frand(1.0) * RANDSIGN();
index 15e3732ee84e41b8743e19bda92df9137a3dd32e..0220cbbb2476a1c5b78a7092df334ce624968f9f 100644 (file)
@@ -584,6 +584,7 @@ reshape_moebius(ModeInfo * mi, int width, int height)
 static void
 pinit(void)
 {
+    int status;
        glClearDepth(1.0);
        glClearColor(0.0, 0.0, 0.0, 1.0);
 
@@ -609,8 +610,21 @@ pinit(void)
        glDisable(GL_CULL_FACE);
 
        glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-       gluBuild2DMipmaps(GL_TEXTURE_2D, 3, WoodTextureWidth, WoodTextureHeight,
-                         GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+
+    clear_gl_error();
+       status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
+                               WoodTextureWidth, WoodTextureHeight,
+                               GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+    if (status)
+      {
+        const char *s = gluErrorString (status);
+        fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+                 progname, WoodTextureWidth, WoodTextureHeight,
+                 (s ? s : "(unknown)"));
+        exit (1);
+      }
+    check_gl_error("mipmapping");
+
        glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
index 02b8362461a5285bf26fd8661f602fb715da9085..0ad814edf1eb2b3408636b704897329c705368b8 100644 (file)
@@ -1200,8 +1200,14 @@ reshape_molecule (ModeInfo *mi, int width, int height)
 static void
 gl_init (ModeInfo *mi)
 {
-  static GLfloat pos[4] = {5.0, 5.0, 10.0, 1.0};
+  static GLfloat pos[4] = {1.0, 0.4, 0.9, 0.0};
+  static GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
+  static GLfloat dif[4] = {0.8, 0.8, 0.8, 1.0};
+  static GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
   glLightfv(GL_LIGHT0, GL_POSITION, pos);
+  glLightfv(GL_LIGHT0, GL_AMBIENT,  amb);
+  glLightfv(GL_LIGHT0, GL_DIFFUSE,  dif);
+  glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
 
   orig_do_labels = do_labels;
   orig_do_bonds = do_bonds;
index 31a0bdd305756fe6e496a8a5432f55a1b4a6acb4..db1e792daddef208426799d0d8eaa0f3028170a4 100644 (file)
@@ -64,6 +64,7 @@ static const char sccsid[] = "@(#)pipes.c     4.07 97/11/24 xlockmore";
                        "*fpsSolid:     True    \n"                 \
                                        "*fisheye:              True    \n"                     \
                                        "*tightturns:   False   \n"                     \
+                                       "*doubleBuffer: True    \n"                     \
                                        "*rotatepipes:  True    \n"
 # include "xlockmore.h"                                /* from the xscreensaver distribution */
 #else  /* !STANDALONE */
@@ -79,10 +80,12 @@ static const char sccsid[] = "@(#)pipes.c   4.07 97/11/24 xlockmore";
 #define DEF_FISHEYE     "True"
 #define DEF_TIGHTTURNS  "False"
 #define DEF_ROTATEPIPES "True"
+#define DEF_DBUF        "False"
 #define NofSysTypes     3
 
 static int  factory;
 static Bool fisheye, tightturns, rotatepipes;
+static Bool dbuf_p;
 
 static XrmOptionDescRec opts[] =
 {
@@ -92,21 +95,25 @@ static XrmOptionDescRec opts[] =
        {"-tightturns", ".pipes.tightturns", XrmoptionNoArg, (caddr_t) "on"},
        {"+tightturns", ".pipes.tightturns", XrmoptionNoArg, (caddr_t) "off"},
       {"-rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, (caddr_t) "on"},
-      {"+rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, (caddr_t) "off"}
+      {"+rotatepipes", ".pipes.rotatepipes", XrmoptionNoArg, (caddr_t) "off"},
+      {"-db", ".pipes.doubleBuffer", XrmoptionNoArg, (caddr_t) "on"},
+      {"+db", ".pipes.doubleBuffer", XrmoptionNoArg, (caddr_t) "off"},
 };
 static argtype vars[] =
 {
        {(caddr_t *) & factory, "factory", "Factory", DEF_FACTORY, t_Int},
        {(caddr_t *) & fisheye, "fisheye", "Fisheye", DEF_FISHEYE, t_Bool},
        {(caddr_t *) & tightturns, "tightturns", "Tightturns", DEF_TIGHTTURNS, t_Bool},
-       {(caddr_t *) & rotatepipes, "rotatepipes", "Rotatepipes", DEF_ROTATEPIPES, t_Bool}
+       {(caddr_t *) & rotatepipes, "rotatepipes", "Rotatepipes", DEF_ROTATEPIPES, t_Bool},
+       {(caddr_t *) & dbuf_p, "doubleBuffer", "DoubleBuffer", DEF_DBUF, t_Bool}
 };
 static OptionStruct desc[] =
 {
        {"-factory num", "how much extra equipment in pipes (0 for none)"},
        {"-/+fisheye", "turn on/off zoomed-in view of pipes"},
        {"-/+tightturns", "turn on/off tight turns"},
-       {"-/+rotatepipes", "turn on/off pipe system rotation per screenful"}
+       {"-/+rotatepipes", "turn on/off pipe system rotation per screenful"},
+       {"-/+db", "turn on/off double buffering"}
 };
 
 ModeSpecOpt pipes_opts =
@@ -534,7 +541,7 @@ pinit(ModeInfo * mi, int zera)
 
        if (zera) {
                pp->system_number = 1;
-               glDrawBuffer(GL_FRONT_AND_BACK);
+               glDrawBuffer(dbuf_p ? GL_BACK : GL_FRONT);
                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                (void) memset(pp->Cells, 0, sizeof (pp->Cells));
                for (X = 0; X < HCELLS; X++) {
@@ -731,7 +738,8 @@ draw_pipes(ModeInfo * mi)
                /* If the maximum number of system was drawn, restart (clearing the screen), */
                /* else start a new system. */
                if (++pp->system_number > pp->number_of_systems) {
-                       (void) sleep(1);
+          if (!mi->fps_p)
+            sleep(1);
                        pinit(mi, 1);
                } else {
                        pinit(mi, 0);
@@ -961,7 +969,8 @@ draw_pipes(ModeInfo * mi)
 
        glFlush();
 
-    glXSwapBuffers(display, window);
+    if (dbuf_p)
+      glXSwapBuffers(display, window);
 
     if (mi->fps_p) do_fps (mi);
 }
index 9d894f4085e6b0555eec17a19517966e9f454c5e..6e6194462ed899cd0853e88749c24a2907b6bed8 100644 (file)
@@ -436,7 +436,6 @@ void Create_Texture(char *filename)
 {
   int height, width;
   GLubyte *image;
-  GLint a;
   int format;
 
   if ( !strncmp(filename, "BUILTIN", 7))
@@ -476,7 +475,21 @@ void Create_Texture(char *filename)
 
   /* mipmaps make the image look much nicer */
   if (do_mipmap)
-       a=gluBuild2DMipmaps(GL_TEXTURE_2D, format, width, height, format, GL_UNSIGNED_BYTE, image);
+    {
+      int status;
+      clear_gl_error();
+      status = gluBuild2DMipmaps(GL_TEXTURE_2D, format, width, height, format,
+                                 GL_UNSIGNED_BYTE, image);
+      if (status)
+        {
+          const char *s = gluErrorString (status);
+          fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+                   progname, width, height,
+                   (s ? s : "(unknown)"));
+          exit (1);
+        }
+      check_gl_error("mipmapping");
+    }
   else
     {
       clear_gl_error();
index d11eb9f10f79f9e83a8034793094ae89841a71c8..5aba74f0ddffbdf2c46dbe072f9ba2d84191d819 100644 (file)
@@ -1,4 +1,4 @@
-/* sphere, Copyright (c) 1998 David Konerding <dek@cgl.ucsf.edu>
+/* sphere, Copyright (c) 2002 Paul Bourke <pbourke@swin.edu.au>
  * Utility function to create a unit sphere in GL.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -9,85 +9,88 @@
  * software for any purpose.  It is provided "as is" without express or 
  * implied warranty.
  *
- *  8-Oct-98: dek           Released initial version of "glplanet"
- * 21-Mar-01: jwz@jwz.org   Broke sphere routine out into its own file.
+ *  8-Oct-98: dek          Released initial version of "glplanet"
+ * 21-Mar-01: jwz@jwz.org  Broke sphere routine out into its own file.
+ * 28-Feb-02: jwz@jwz.org  New implementation from Paul Bourke:
+ *                         http://astronomy.swin.edu.au/~pbourke/opengl/sphere/
  */
 
 #include "config.h"
 #include <stdlib.h>
 #include <math.h>
 #include <GL/glx.h>
-#include "tube.h"
 
-/* Function for determining points on the surface of the sphere */
-static void
-parametric_sphere (float theta, float rho, GLfloat *vector)
-{
-  vector[0] = -sin(theta) * sin(rho);
-  vector[1] = cos(theta) * sin(rho);
-  vector[2] = cos(rho);
-}
 
+typedef struct { GLfloat x, y, z; } XYZ;
 
 void
 unit_sphere (int stacks, int slices, Bool wire)
 {
-  int i, j;
-  float drho, dtheta;
-  float rho, theta;
-  GLfloat vector[3];
-  GLfloat ds, dt, t, s;
+  int i,j;
+  double theta1, theta2, theta3;
+  XYZ e, p;
+  XYZ la, lb;
+  XYZ c = {0, 0, 0};  /* center */
+  double r = 1.0;     /* radius */
+  int stacks2 = stacks * 2;
 
-  if (!wire)
-    glShadeModel(GL_SMOOTH);
+  if (r < 0)
+    r = -r;
+  if (slices < 0)
+    slices = -slices;
+
+  if (slices < 4 || stacks < 2 || r <= 0)
+    {
+      glBegin (GL_POINTS);
+      glVertex3f (c.x, c.y, c.z);
+      glEnd();
+      return;
+    }
 
-  /* Generate a sphere with quadrilaterals.
-   * Quad vertices are determined using a parametric sphere function.
-   * For fun, you could generate practically any parameteric surface and
-   * map an image onto it. 
-   */
-  drho = M_PI / stacks;
-  dtheta = 2.0 * M_PI / slices;
-  ds = 1.0 / slices;
-  dt = 1.0 / stacks;
+  glFrontFace(GL_CW);
 
-  glFrontFace(GL_CCW);
-  glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
+  for (j = 0; j < stacks; j++)
+    {
+      theta1 = j       * (M_PI+M_PI) / stacks2 - M_PI_2;
+      theta2 = (j + 1) * (M_PI+M_PI) / stacks2 - M_PI_2;
 
-  t = 0.0;
-  for (i=0; i < stacks; i++) {
-    rho = i * drho;
-    s = 0.0;
-    for (j=0; j < slices; j++) {
-      theta = j * dtheta;
+      glBegin (wire ? GL_LINE_LOOP : GL_TRIANGLE_STRIP);
+      for (i = 0; i <= slices; i++)
+        {
+          theta3 = i * (M_PI+M_PI) / slices;
 
-      glTexCoord2f (s,t);
-      parametric_sphere (theta, rho, vector);
-      glNormal3fv (vector);
-      parametric_sphere (theta, rho, vector);
-      glVertex3f (vector[0], vector[1], vector[2]);
+          if (wire && i != 0)
+            {
+              glVertex3f (lb.x, lb.y, lb.z);
+              glVertex3f (la.x, la.y, la.z);
+            }
 
-      glTexCoord2f (s,t+dt);
-      parametric_sphere (theta, rho+drho, vector);
-      glNormal3fv (vector);
-      parametric_sphere (theta, rho+drho, vector);
-      glVertex3f (vector[0], vector[1], vector[2]);
+          e.x = cos (theta2) * cos(theta3);
+          e.y = sin (theta2);
+          e.z = cos (theta2) * sin(theta3);
+          p.x = c.x + r * e.x;
+          p.y = c.y + r * e.y;
+          p.z = c.z + r * e.z;
 
-      glTexCoord2f (s+ds,t+dt);
-      parametric_sphere (theta + dtheta, rho+drho, vector);
-      glNormal3fv (vector);
-      parametric_sphere (theta + dtheta, rho+drho, vector);
-      glVertex3f (vector[0], vector[1], vector[2]);
+          glNormal3f (e.x, e.y, e.z);
+          glTexCoord2f (i       / (double)slices,
+                        2*(j+1) / (double)stacks2);
+          glVertex3f (p.x, p.y, p.z);
+          if (wire) la = p;
 
-      glTexCoord2f (s+ds, t);
-      parametric_sphere (theta + dtheta, rho, vector);
-      glNormal3fv (vector);
-      parametric_sphere (theta + dtheta, rho, vector);
-      glVertex3f (vector[0], vector[1], vector[2]);
+          e.x = cos(theta1) * cos(theta3);
+          e.y = sin(theta1);
+          e.z = cos(theta1) * sin(theta3);
+          p.x = c.x + r * e.x;
+          p.y = c.y + r * e.y;
+          p.z = c.z + r * e.z;
 
-      s = s + ds;
+          glNormal3f (e.x, e.y, e.z);
+          glTexCoord2f (i   / (double)slices,
+                        2*j / (double)stacks2);
+          glVertex3f (p.x, p.y, p.z);
+          if (wire) lb = p;
+        }
+      glEnd();
     }
-    t = t + dt;
-  }
-  glEnd();
 }
index e905cae4a76c51f85be59de8d2c96979ed2e320d..6832bf4117bc0d48f34acad2a58f71ac3a0edf3b 100644 (file)
@@ -440,6 +440,7 @@ reshape_stairs(ModeInfo * mi, int width, int height)
 static void
 pinit(void)
 {
+    int status;
        glClearDepth(1.0);
        glClearColor(0.0, 0.0, 0.0, 1.0);
 
@@ -465,8 +466,21 @@ pinit(void)
        glEnable(GL_CULL_FACE);
 
        glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-       gluBuild2DMipmaps(GL_TEXTURE_2D, 3, WoodTextureWidth, WoodTextureHeight,
-                         GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+
+    clear_gl_error();
+    status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3,
+                               WoodTextureWidth, WoodTextureHeight,
+                               GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData);
+    if (status)
+      {
+        const char *s = gluErrorString (status);
+        fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n",
+                 progname, WoodTextureWidth, WoodTextureHeight,
+                 (s ? s : "(unknown)"));
+        exit (1);
+      }
+    check_gl_error("mipmapping");
+
        glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
diff --git a/hacks/images/earth.xbm b/hacks/images/earth.xbm
deleted file mode 100644 (file)
index dab546c..0000000
+++ /dev/null
@@ -1,2192 +0,0 @@
-/* The surface of the earth.  Created with:
-   xearth -proj mercator -noshade -ppm \
-     | ppmtopgm | pgmtopbm -thresh | pbmtoxbm
- */
-#define earth_width 512
-#define earth_height 512
-static char earth_bits[] = {
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0x80,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x0f,0xfc,0x00,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x07,0xfc,0x00,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0x07,0xfc,0x01,0xc2,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xff,0x3f,0xff,0xdf,0x3f,0x00,0x7e,0x00,
- 0xc0,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xfe,0x1f,0xfe,0xff,
- 0x3f,0x00,0x1e,0x00,0xc0,0x01,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0xfe,0x1f,0xfc,0xff,0x3f,0x00,0x3f,0x00,0xc0,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0xfe,0x1f,0xfc,0xff,0x37,0x00,0x3f,0x00,0x80,0x00,0xe0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0x1f,0xfc,0xff,0x03,0x00,0x7f,
- 0x00,0x80,0x00,0xe2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x1f,0xfc,
- 0xff,0x03,0x00,0x8f,0x03,0x80,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xf0,0xff,0x1f,0xfc,0xff,0x03,0x00,0x0f,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0xc0,0xff,0x3f,0xf8,0xff,0x07,0x00,0x0f,0x00,0x00,0x00,
- 0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0x3f,0xe0,0xff,0x0f,0xf8,0xff,0x03,0x00,
- 0xff,0x0c,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xc0,0x1f,0xf0,0xff,0x03,
- 0xf0,0xff,0x01,0x00,0x3f,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xc0,
- 0x1f,0xf8,0xff,0x07,0xf0,0xff,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0xe0,0x3f,0xf8,0xff,0x07,0xf0,0xff,0x03,0x00,0x7e,0x00,0x00,
- 0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xe0,0x7f,0xfc,0xff,0x3f,0xf0,0xff,0x07,
- 0x00,0xfe,0x01,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf0,0xff,0xff,0xff,
- 0x3f,0x70,0xff,0x0f,0x00,0xf3,0x07,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,
- 0xf0,0xff,0xff,0xff,0x7f,0x78,0xfc,0x1f,0x00,0xe3,0x0f,0x0e,0x00,0x00,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x0f,0x40,0xf0,0xff,0xff,0xef,0x7f,0x38,0xfc,0x30,0x80,0xc3,0x0f,
- 0x03,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x60,0xfc,0xff,0xff,0xef,0x7f,0x38,0xfc,
- 0x00,0x80,0xc1,0xfd,0x03,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x70,0xfe,0xff,0xff,
- 0xef,0x7f,0x38,0xf8,0x00,0x80,0xc1,0x70,0x06,0x00,0x00,0xe0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,
- 0xf8,0xff,0xff,0xff,0xef,0xff,0x3c,0xf8,0x00,0x80,0x41,0x00,0x00,0x00,0x00,
- 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xef,0xff,0x3f,0xf8,0x00,0x80,0x41,
- 0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x87,0xff,0xff,0xff,0xff,0x3f,
- 0xfc,0x00,0x80,0x41,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x81,0xff,
- 0xf9,0xff,0xff,0x3f,0xfc,0x00,0xc0,0x41,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xe7,0x01,0xfe,0xf8,0xff,0xff,0xff,0x7f,0x00,0xf1,0x40,0x00,0x00,0x00,
- 0x06,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xe7,0x03,0x7e,0xf8,0xff,0xff,0xff,0xff,0x00,0xff,
- 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x7c,0xf8,0xff,0xff,
- 0x7f,0xfe,0x80,0xff,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,
- 0x7c,0xfc,0xff,0xff,0x3f,0xfc,0xcf,0x41,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x00,0x7c,0xfc,0xf7,0xff,0x7f,0xf8,0xff,0xc0,0x01,0x00,0x00,
- 0x80,0xff,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x7c,0xfc,0xf7,0xff,0xff,0xff,0x7f,
- 0x80,0x03,0x00,0x00,0xf8,0xff,0x08,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x78,0xf8,0xff,
- 0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0xc0,0xff,0x7f,0x08,0xfc,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0x00,0x78,0xf8,0xe3,0xf3,0xf7,0xff,0xff,0x07,0x00,0x0c,0xf3,0x7f,0x27,0x08,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x0d,0x00,0xc0,0x67,0xe3,0xc3,0xbf,0xff,0x07,0x80,0x39,
- 0xf7,0x0f,0x00,0x08,0x36,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0xc0,0x7f,0xc3,0xc3,0xbf,
- 0xc7,0x03,0x80,0xf7,0xff,0x07,0x00,0x00,0x16,0x3f,0xbc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0xff,0xff,0x01,0xc0,
- 0x7f,0x82,0x83,0xff,0xc7,0x01,0x00,0xfe,0xff,0x07,0x00,0x00,0x1c,0x4b,0x1c,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,
- 0xff,0x0f,0x00,0xe0,0x3f,0xc0,0x83,0xff,0xc7,0x00,0x00,0xfc,0xff,0x07,0x00,
- 0x00,0x08,0x8b,0x0c,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x0f,0xe0,0xff,0x03,0x00,0xe0,0x0f,0xc0,0x87,0xff,0xc7,0x08,0x00,
- 0xf8,0xff,0x1f,0x00,0x00,0x00,0x8b,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xc0,0xff,0x07,0x70,0x70,0x0f,0xc0,0x07,
- 0xfe,0x84,0x05,0x00,0xfc,0xff,0x0f,0x00,0x00,0x00,0x0f,0x00,0xe0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0xf8,0x07,0xfe,
- 0x3f,0xff,0xe1,0x1f,0x2c,0x00,0x01,0x00,0xff,0xff,0x07,0x00,0x00,0x00,0x03,
- 0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x00,0xf0,0xff,0xff,0xff,0xff,0xe0,0x3f,0x1c,0x00,0x00,0x00,0xff,0xff,0x03,
- 0x00,0x00,0x00,0x00,0x00,0xc4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0x00,0xf0,0xff,0xff,0xff,0x3f,0xe0,0x3f,0x38,0x00,0x10,
- 0xc8,0xff,0xef,0x01,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xe0,0xff,0xff,0xff,0x3f,0xf0,
- 0x3f,0x78,0x00,0x18,0xfc,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xe0,0xff,
- 0xff,0xff,0x3f,0xf8,0x3e,0xfe,0x01,0x30,0xfe,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x03,0x00,0xe0,0xff,0xff,0xff,0xff,0x3f,0x3c,0xfe,0x03,0xc0,0xff,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x03,0x00,0xc0,0xff,0xff,0xff,0xff,0x1f,0x3c,0xfc,0x27,
- 0xc0,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0xf0,0xff,0xff,0xff,0xff,
- 0x1f,0x1c,0xfc,0xff,0xc0,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x1c,
- 0xff,0xff,0xff,0xff,0x1f,0x0c,0xfc,0xff,0x81,0xff,0x0f,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xf0,0x81,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x00,0x00,0x03,0xff,0xff,0xff,0xff,0x3f,0x0c,0xf8,0xff,0x81,0xff,0x1f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x00,0xc0,0x00,0xff,0x7f,0xfc,0xff,0x7f,0x0e,0xe0,
- 0xff,0xc1,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x60,0x80,0xff,0x7f,0xf8,
- 0xff,0xff,0x0f,0xc0,0xf1,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x30,
- 0x80,0xf0,0x4f,0xf8,0x37,0xff,0x0f,0x00,0xc0,0xff,0xff,0xfb,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x00,0x38,0x00,0x70,0x07,0xfc,0xe3,0xff,0x3f,0x00,0x80,0xfb,0xff,
- 0xa1,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x1c,0x00,0x70,0x87,0xfe,0x01,0xdf,0xff,
- 0x01,0x00,0xff,0xff,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x1c,0x00,0x38,0x86,
- 0xff,0x03,0x0f,0xff,0x01,0x00,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xf8,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0x0e,0x00,0x00,0x06,0xff,0x83,0x07,0xfc,0x03,0x00,0xff,0xff,0x07,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x04,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x07,0x1e,0x00,0x00,0x06,0x9f,0xc1,0x03,0xf8,0x3f,0x00,0xff,
- 0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xf0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0x3f,0x00,0x00,0x82,0x1f,0xe1,0x03,
- 0xf0,0xff,0x81,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xf0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x1f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,
- 0x86,0x1f,0xc0,0x03,0xf8,0xff,0xc3,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x00,0x00,0x86,0x3f,0xc0,0x01,0xfc,0xff,0xff,0xff,0xff,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xdf,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x80,0x3f,0x80,0x01,0x7e,0xf8,0xff,
- 0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,
- 0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xfd,0xff,0x1f,0x00,0x00,0x80,0x7f,0x80,
- 0x01,0x1f,0xf0,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x01,0x00,0x00,0xc0,0xf9,0xff,0xff,0xff,0xf9,0xff,0x3f,0x00,
- 0x00,0x00,0x7f,0x80,0xb1,0x0f,0xf8,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x30,0xe0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xe7,
- 0xf8,0xff,0xff,0x00,0x00,0x80,0xff,0xc0,0xf1,0x0f,0x3c,0xfe,0xff,0xff,0xff,
- 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0x3b,0x30,0xf0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,
- 0xc0,0xff,0xff,0x71,0x78,0xff,0xff,0x3f,0x00,0x80,0xff,0xc0,0xf9,0x07,0x0e,
- 0xf4,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x01,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0xff,0xff,0xff,0x1f,
- 0x00,0x00,0x00,0x00,0x00,0xfc,0x7f,0x08,0x78,0xff,0xff,0x7f,0x00,0x80,0xff,
- 0xe4,0xff,0x03,0x07,0xe0,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x02,0xfb,
- 0xff,0xff,0xff,0xff,0xff,0x01,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,
- 0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0xf8,0x23,0x06,0x30,0xe3,0x3f,
- 0xe0,0x00,0x80,0xff,0xfd,0xfe,0x03,0x01,0x82,0xff,0xff,0xff,0x3f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0xc3,0xff,0xff,0xff,0xff,0xff,0x03,0xf8,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0xf0,0x01,
- 0x00,0x00,0xc3,0x3f,0x00,0x00,0x80,0xff,0x7f,0xfc,0x81,0x01,0x00,0xff,0xff,
- 0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xdf,0xef,0xff,0xff,0xff,0x03,0x82,0xff,0xff,0xff,0xff,0x7f,0x03,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0x81,0x00,0x00,0x80,0x3f,0x00,0x00,0x00,0xff,0x3f,0xfc,0x81,
- 0x01,0x00,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0x0f,0x83,0xff,0xff,0xff,
- 0xff,0xff,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
- 0xfe,0x1f,0xf8,0x81,0x03,0x06,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfd,0xf9,0xff,0xff,0xff,0xff,
- 0xc3,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x7c,0x00,0x00,0x00,0xfc,0x0f,0xf8,0x80,0x00,0x3f,0xff,0xff,0xff,0x1f,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xf8,0x03,0x00,0x00,0xf8,0x1f,0xf8,0x80,0x00,0xcf,0xff,
- 0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xbf,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x0f,0x00,0x00,0xf8,0x0f,0xfc,
- 0x83,0x00,0x8c,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,
- 0xff,0xff,0x1f,0xf9,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,
- 0x00,0xf8,0x0f,0xf8,0x87,0x00,0x14,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,
- 0x00,0xf0,0xff,0xff,0xff,0x7f,0x17,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x0c,0x00,0x81,0xff,0x07,0xf8,0xc0,0x00,0x00,0xff,0xff,0xff,0x3f,
- 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x3f,0x71,0xe0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0xe0,0x83,0xff,0x0e,0xf8,0x00,0x00,0xc0,
- 0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x3f,0x70,
- 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x30,0xf8,0xff,0xff,0xff,
- 0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x06,0x7e,0x0e,
- 0xfc,0x01,0x00,0x00,0xfe,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,
- 0xff,0xff,0x3f,0xe0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x10,
- 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,
- 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x1f,0x1c,0x7f,0x1c,0xfc,0x03,0x00,0x00,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0xff,0xff,0xff,0x3f,0xe0,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x3f,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0x30,0xfc,0xff,0xff,0xff,
- 0x0f,0xf0,0x8f,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x0f,0xfc,0x1f,0x7c,0xfe,0x0f,0x00,0x80,0xfe,0xff,0xff,
- 0x1f,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0x3f,0xc0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0xe0,0xff,0xff,0xff,0xff,0x0f,0x04,
- 0xfe,0x0f,0xfc,0xff,0x19,0x00,0x00,0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x7f,0xfc,0x3f,0x38,0xf8,0x0f,0x00,
- 0x00,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xdc,0xff,0xff,0xff,0x3f,
- 0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0xc0,0xff,0xff,
- 0xff,0xff,0x0f,0x10,0xf8,0x03,0xf8,0xff,0x3e,0x00,0x00,0xf8,0xff,0xff,0x0f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xf8,0x7f,
- 0x18,0xf0,0x7f,0x00,0x00,0xf0,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xfc,
- 0xff,0xff,0xff,0x7f,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,
- 0x00,0xc0,0xff,0xff,0xff,0xff,0x07,0x08,0xc0,0x01,0xf8,0x3f,0x3c,0x00,0x00,
- 0xe0,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,
- 0x00,0x1c,0xe0,0xff,0x38,0xf8,0x9f,0x01,0x00,0xf0,0xff,0xff,0x1f,0x00,0x00,
- 0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x21,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0x00,0xc0,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0xf0,
- 0x01,0x30,0x00,0x00,0x80,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x7c,0x00,0x00,0x10,0xc0,0x3f,0x3f,0xd8,0x0f,0x9f,0x01,0xfc,0xff,
- 0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xe0,0xff,0x9f,0xf9,0xff,0x0f,
- 0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x03,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0x3f,0x00,0x00,0x10,0x00,0x3f,0x1e,0x98,0x0f,
- 0xbe,0x01,0xf0,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,
- 0xff,0x73,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0xe0,0xff,
- 0x0f,0xf0,0xff,0x0f,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
- 0xf7,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x78,0x02,0x00,0x10,0x00,
- 0x40,0x06,0x88,0x1f,0xee,0x01,0xe8,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,
- 0xf8,0xff,0xff,0xff,0xff,0x39,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x00,0xb0,0xff,0x1f,0xf8,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x83,0xff,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,
- 0x03,0x00,0x10,0x00,0x00,0x02,0x80,0x0f,0xfc,0x03,0x80,0xff,0xff,0x0f,0x00,
- 0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0x7f,0x78,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0x00,0x10,0xf8,0xff,0x1f,0xe4,0xff,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfe,0x01,0x00,0x10,0x00,0x00,0x02,0x80,0x07,0xfc,0x03,0x80,
- 0xff,0xff,0x27,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0x0f,0x00,0x08,0xf8,0x83,0x7f,0xc6,0x3f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x7c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x02,0xc0,
- 0x03,0xde,0x07,0xd0,0xff,0xff,0x23,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,
- 0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0x07,0x00,0x07,0x08,
- 0x01,0x00,0xe4,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x00,0x00,0x00,
- 0x00,0x00,0x02,0xc0,0x02,0xff,0x03,0x10,0xff,0xff,0x37,0x00,0x00,0x00,0x00,
- 0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,
- 0x07,0x00,0x01,0x1c,0x00,0x00,0xc0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x12,0x00,0x00,0x00,0x00,0x00,0x01,0xc0,0x01,0xff,0x01,0x00,0xff,0xff,0x3f,
- 0x00,0x00,0x00,0x00,0xc0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0xf8,0xff,0xf7,0x03,0x00,0x02,0x0e,0x00,0x00,0x80,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x80,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xff,0x0f,
- 0xc0,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x40,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x1f,0xfc,0xff,0xff,0x01,0x00,0x00,0x06,0x02,0x00,0x00,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xc0,0xff,0x00,0x06,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x1f,0x20,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x8c,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xfe,0xff,0xff,0x01,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xec,
- 0xc0,0xff,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x1c,0xc0,0xff,0xff,0x67,0x00,0x00,0x00,
- 0x80,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,
- 0xff,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfc,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x14,0xe0,0xff,0xff,
- 0x43,0x00,0x00,0x00,0x00,0xda,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xc3,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc1,0xff,0xff,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7f,
- 0x34,0xe0,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0xf7,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xcf,0xff,0xff,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x81,0xc9,0x7f,0x3e,0xc0,0xff,0xff,0x11,0x00,0x00,0x00,0x00,0xe2,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
- 0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x02,0xff,0xff,0x3f,0xc0,0xff,0xff,0x63,0x00,0x00,
- 0x00,0x00,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,
- 0xff,0x1f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0xfb,0xff,0x1f,0x00,0xff,
- 0xff,0x3b,0x00,0x00,0x00,0x00,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xf1,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xf0,0x1f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xff,
- 0xff,0x1f,0x00,0xfe,0xff,0x3f,0x00,0x00,0x00,0x20,0xf8,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xe7,
- 0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x60,0xfe,0xff,0x07,0x00,0xfe,0xff,0x3f,0x00,0x00,0x00,0x00,0xf8,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0x0f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xfc,0xff,0xc3,0x00,0xfe,0xff,0x1f,0x00,
- 0x00,0x00,0x80,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,
- 0xff,0xfe,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x30,0x38,0x00,0x30,0x00,0x00,0x30,0xf8,0xff,0xc3,0x01,
- 0xf8,0xff,0x03,0x00,0x00,0x00,0x90,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xfd,0xff,0xb9,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x1c,0x00,0x18,0x00,0x00,0x38,
- 0xf0,0xef,0x03,0x10,0xfc,0xff,0x09,0x00,0x00,0x00,0x88,0xf8,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xb0,0x71,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,
- 0xff,0x07,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0x00,
- 0x00,0x00,0x90,0x1f,0xe0,0x47,0x00,0x30,0xf0,0xff,0x16,0x00,0x00,0x00,0xf0,
- 0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0x7f,0xb0,0xc3,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xfc,0xff,0xff,0x07,0x00,0x00,0xe0,0x1c,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xf8,0x03,0x00,0x00,0x00,0xc0,0x0f,0xe0,0x03,0x00,0x3c,0xf0,0xff,0x08,
- 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0xfe,0x7f,0x90,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0x1f,0x00,0x00,0x10,0x3c,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xc0,0x3f,0xe6,0x07,0x10,
- 0x38,0xf8,0xff,0x04,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0xfe,0x7f,0x90,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x1f,0x00,
- 0x00,0x18,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,0xf8,
- 0x3f,0xc7,0xef,0x30,0x38,0xfc,0xff,0x01,0x00,0x00,0x00,0x00,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfe,0x7f,0x18,0x87,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,
- 0xff,0xff,0x1f,0x00,0x00,0x1c,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0x01,0x78,0xfe,0xff,0x00,0x00,0x00,0x00,
- 0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfe,0x3f,0x30,
- 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xfc,0xff,0xff,0xff,0x1f,0x00,0x00,0x0c,0xff,0x7f,0x03,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x03,0xf0,0xff,0xff,
- 0x00,0x00,0x00,0x10,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xfc,0x3f,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x06,0x00,0xfe,0xff,0xff,0xff,0x33,0x02,0x80,0x9e,0xff,
- 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xf9,0xfd,
- 0x03,0xe0,0xff,0xff,0x00,0x00,0x00,0x90,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xbf,0xf8,0x3f,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xff,0xff,0xff,0xff,0xf3,
- 0x07,0x20,0xcf,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xfc,0xff,0x07,0xe0,0xff,0x7f,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf0,0x7f,0x20,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xff,
- 0xff,0xff,0xff,0xff,0x07,0x00,0xfe,0xff,0xff,0x4f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0x87,0xe0,0xff,0xff,0x00,0x00,0x00,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0x7f,
- 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x02,0x80,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xfe,0xff,0xff,0x9f,0x02,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x9f,0xf9,0x0f,0xe1,0xff,
- 0xff,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc9,0xff,
- 0xff,0xff,0x9f,0x3f,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x84,0x03,0xc0,0xff,0xff,0xff,0xff,0xff,0xf7,0x07,0xfe,
- 0xff,0xff,0xff,0x05,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0xc0,0xff,0xff,0xdf,
- 0xf0,0x0f,0xe3,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x2f,0xc0,0xff,0xff,0xff,0xbf,0xfc,0x60,0x03,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x03,0xe4,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x07,0xfb,0xff,0xff,0x7f,0x0a,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
- 0xe0,0xff,0xff,0xff,0x00,0x3f,0xf6,0xff,0xff,0x03,0x00,0xc8,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x07,0xe0,0xff,0xff,0xff,0x7f,0xf0,0xe0,0x04,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xcf,0x01,0xef,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x97,0xfb,0xff,0xff,0x7f,0x0a,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x01,0x3f,0xfc,0xff,0xff,0x01,0x00,
- 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x05,0x00,0xff,0xff,0xfb,0xff,
- 0xc0,0xc1,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xff,0xa0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xf8,0xff,0xff,0xff,
- 0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x00,0xfe,0xfc,
- 0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,
- 0xfe,0xff,0xf3,0xdf,0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xff,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,
- 0xfc,0xff,0xff,0xff,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,
- 0xff,0x00,0xfe,0xfd,0xff,0xff,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0x00,0x04,0xf0,0xff,0x7f,0x47,0x00,0xc0,0x08,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x7f,0xfc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xe0,0xff,0xff,0xff,0x00,0xfc,0xff,0xff,0xff,0x00,0xc0,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0x2f,0x00,0x00,0xe0,0x9f,0x1f,0x01,0x00,0xc0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x7f,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0x3d,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x80,0xff,0xff,0xff,0x00,0xf0,0xf7,0xff,0xff,0x01,
- 0xc0,0xff,0xff,0x1f,0xbf,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xc0,0x1f,0x0f,
- 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xe0,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,
- 0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0xff,0xff,0xff,0x00,0xf0,
- 0xff,0xff,0xff,0x01,0xc0,0xff,0xff,0x7f,0x01,0xff,0xff,0xff,0xff,0x0f,0x00,
- 0x00,0x00,0x1e,0x07,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xe0,0x1f,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0xfe,0xff,0xff,0xff,0xff,0x2f,0x00,0x38,0x00,0x00,0x00,0x80,0x00,0x80,0xff,
- 0xff,0x7f,0x00,0xf0,0xff,0xff,0xff,0x01,0xe0,0xff,0xff,0x7f,0x00,0xff,0xff,
- 0xff,0xff,0x0f,0x00,0x00,0x00,0xdc,0x01,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x1f,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0xff,0xff,0xff,0xff,0xff,0x4f,0x02,0x00,0x00,0x00,0x00,
- 0x80,0x00,0x80,0xff,0xff,0x3f,0x00,0xf8,0xff,0xff,0xff,0x01,0xf0,0xff,0xff,
- 0x3f,0x00,0xfe,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x9c,0x01,0x00,0x00,0x38,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xf9,0x1f,
- 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xdf,0x00,
- 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0xff,0xff,0x3f,0x00,0xf8,0xfb,0xff,0xff,
- 0x03,0xf8,0xff,0xff,0x7f,0x00,0xfe,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x3c,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xf0,0xfd,0x0f,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xf8,0xff,0x3f,0x00,
- 0xf8,0xfb,0xff,0xff,0x03,0xf8,0xff,0xff,0x3f,0x00,0xff,0xff,0xff,0xff,0x03,
- 0x00,0x00,0x01,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xf0,0xff,0x7f,0x00,0xf8,0xf1,0xff,0xff,0x03,0xfc,0xff,0xff,0x7f,0x80,0xff,
- 0xff,0xff,0xff,0x01,0x00,0x00,0x06,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0x03,0xf8,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xaf,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0x00,0xe0,0xf1,0xff,0xff,0x27,0xfc,0xff,
- 0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0xbc,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,
- 0x03,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,
- 0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0x00,0x60,0xf0,0xff,
- 0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x70,0x00,0xfc,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xf8,0xff,0xff,0x01,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xdf,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,
- 0x00,0x00,0xf0,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x78,0x00,0xfc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0x01,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0xff,0x00,0x00,0xf0,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0x00,0x78,0x00,0xdc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0x01,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x77,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x38,0x00,0x9c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,
- 0xff,0x01,0xfc,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0x00,0x00,0x00,0x00,0x10,0x24,0x00,0x00,0xf0,0x7f,0x00,0x00,0xe0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x1c,0x00,
- 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0xff,0xff,0x01,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0xc0,
- 0x3f,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x07,0x00,0x0e,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x01,0xf8,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x00,0x00,0x00,0x00,0x00,
- 0x3e,0x00,0x00,0xc0,0x0f,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x03,0x00,0x07,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0x01,0xfe,
- 0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,
- 0x00,0x00,0x00,0x00,0x30,0x00,0x00,0xc0,0x03,0x00,0x00,0xe0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xc0,0x83,0x02,0x04,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,
- 0xff,0xff,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0xc0,0x03,0x00,0x00,
- 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0xc0,0x03,
- 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0xff,0xff,0xff,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
- 0xc0,0x07,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0x00,0xc0,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x03,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x02,0x00,0x00,0x00,
- 0x00,0x40,0x00,0x00,0xa0,0x03,0x00,0x20,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0x01,0xe0,0x03,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x83,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x06,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0xc0,0x03,0x00,0x00,0x80,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x7f,0x00,0xe0,0x03,0x26,0x0c,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,
- 0xbf,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x0c,0x00,0x00,0x00,0x00,0x48,0x00,0x00,0xc0,0x07,0x00,
- 0xc0,0x01,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0xe0,
- 0x03,0x60,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xc0,0xf9,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x09,0x00,0x00,0x00,0x00,0x48,0x00,
- 0x00,0x80,0x07,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0x00,0xc0,0x03,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x31,0xff,0xff,0xcf,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1b,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x80,0xfc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x80,0x8f,0xe7,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xff,0xff,
- 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf9,0x7f,0x10,0x80,0xff,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x20,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x13,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x00,0x00,
- 0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0x3f,0x18,
- 0xc1,0x3f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x20,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,
- 0x03,0x04,0x00,0x00,0x06,0x01,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xfc,0x7f,0x9c,0xe0,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,
- 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xf8,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0x3f,0xf0,0x17,0x00,0x40,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x60,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
- 0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0x3f,0xf0,0x1f,0x00,
- 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
- 0x00,0x00,0x60,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,
- 0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,
- 0x37,0xb0,0x1f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0x01,0x00,0x00,0x00,0x00,0x60,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,
- 0x00,0x80,0x3f,0x00,0x00,0x00,0x38,0xc0,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xfc,0xff,0x77,0xf0,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0xe0,0xfc,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0x7f,0x00,0x00,0x00,0xfc,0xe3,0xfd,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0x71,0xf0,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0xe0,
- 0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0xc0,0xfd,0x00,0x00,0x00,0x7f,
- 0xfe,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xe0,0xff,0x79,0xfe,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x00,
- 0x00,0x00,0x00,0xe0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,
- 0x00,0x00,0x80,0xc0,0xfd,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xe3,
- 0xff,0x51,0xfe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0xe0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xc3,0xc3,0xff,0xf9,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0xe0,0xfe,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0xf0,0x3f,0xe0,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xc3,0xff,0xfb,0xff,0x00,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
- 0xe0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x13,0x00,0x00,
- 0xe0,0x1f,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xc1,0xff,0x93,0x47,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xf0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x1c,0x3e,0x00,0x00,0xf0,0x1f,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,
- 0xc1,0x3f,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xf8,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x08,0x3e,0x00,0x00,0xe0,0xff,0xc7,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xf1,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0xf8,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0e,0x00,0x00,0x20,0xfb,0xcb,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xf8,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x04,0x00,
- 0x00,0x90,0xfd,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xf8,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x0c,0xc4,0x07,0x00,0x2e,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x7d,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x06,0xc0,0x03,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xd1,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7a,0x00,0xf0,0xf3,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x08,0xfe,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,
- 0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x37,0x00,
- 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xf0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,
- 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xa0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xfe,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,
- 0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x20,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe0,0x01,0x0c,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfe,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x0f,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xf0,0x01,0x0e,0x00,0x10,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x30,0x3c,0x00,0xfc,0x01,0x0f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0xff,0x7f,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xa0,0x00,0x00,0x78,0x3c,
- 0x00,0x7c,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xc2,
- 0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x07,0x00,0xe0,
- 0x00,0x00,0xf8,0x00,0x00,0x3e,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xb8,0x87,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0xc0,0xe3,0x01,0x00,0xfc,0x3e,0x00,0x7c,0x00,0x0d,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x07,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x00,0x00,0xef,0xc3,0x01,0x00,0xfc,0x7f,0x00,0x7c,0x00,
- 0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x07,0xff,0x1f,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xc2,0x07,0x00,0xfe,
- 0xff,0x03,0xfc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,
- 0x1f,0xfe,0x07,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0x01,0x00,0x00,0x00,0x00,0x00,0x80,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,
- 0x86,0x0f,0x00,0xfe,0xff,0x07,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x08,0x1f,0xfe,0x07,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x03,0x00,0x00,
- 0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x00,0xc0,0xff,0x0f,0x1e,0x00,0xfe,0xff,0x07,0xf0,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x1f,0xfc,0x80,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x9f,0x03,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x00,0xe0,0xff,0x3e,0x3e,0x00,0x7e,0xfc,0x03,0xe0,
- 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f,0x3c,0xf0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0x03,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0xf0,0x7f,0x7e,0x38,0x00,
- 0x10,0xe0,0x00,0xc0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xf0,0x1f,0x9f,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x06,0x00,0x00,0x00,0x00,0x00,
- 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x78,
- 0x7f,0xfe,0x34,0xf8,0x03,0x00,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xf0,0xff,0x4f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x06,0x00,
- 0x00,0x00,0x20,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x00,0xf0,0x7f,0xff,0x3d,0x3c,0x00,0x00,0x00,0xe0,0x03,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0x27,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x0c,0x00,0x00,0xf0,0xe3,0x03,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xff,0xff,0x7d,0x3c,0x00,0x00,0x00,
- 0xf0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xcf,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0x1c,0x00,0x00,0xfc,0xff,0x1f,0xfe,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xfc,0xff,0xff,0x7d,
- 0x7c,0x00,0x00,0x00,0xf0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x38,0x00,0x00,0xfe,0xff,
- 0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,
- 0xfe,0xff,0x0f,0xff,0x78,0x00,0x00,0x80,0xe0,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc4,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x73,
- 0x00,0x00,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x1f,0x04,0x3e,0xff,0xfc,0x00,0x00,0x00,0x80,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x73,0x00,0x00,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x03,0x00,0xfc,0xff,0xfd,0x01,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0x00,0x00,0xfe,0xff,0x3f,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0xfc,
- 0xff,0xff,0x33,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x20,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x01,0x00,0xfe,
- 0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x03,0x00,0x00,0xfc,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xcf,0x01,0x00,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xfe,0xff,0xcf,0x7f,0x06,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xdf,0x03,0x00,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,
- 0xfc,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x80,
- 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x1f,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x0f,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x80,0x3f,0xfc,0xff,0x03,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x80,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x3f,0xf0,
- 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0xff,0xff,0x37,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,
- 0x00,0x00,0x3c,0x80,0xef,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x00,0xff,0x83,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xf7,0x07,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x1f,0x00,0xfe,0x83,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0xfe,0xc1,0xff,0x8f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x40,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x70,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0xf8,0xc1,
- 0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x78,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x01,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0xe0,0x03,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xe0,0xff,0xff,0x87,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
- 0x00,0xc0,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xe0,0xff,0xe7,0x07,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x07,0x00,0xc0,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x0c,
- 0xf0,0xff,0xff,0x8f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0xbf,0x1f,0x1f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x1f,0xf0,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x9f,
- 0xff,0x3f,0x00,0x00,0x00,0x40,0x00,0x00,0xc0,0xfd,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x1c,0x00,0x00,0x0e,0xff,0xff,0x00,0x00,0x00,0xc0,0x00,0x00,0xe0,0xfd,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0xf8,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0xfc,0xff,0x00,0x00,0x00,0xfc,0x00,
- 0x00,0xf0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x01,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0xf8,0xff,0x00,
- 0x00,0x00,0xfe,0x01,0x00,0xf0,0xfc,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x07,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x78,0x00,0x00,
- 0x00,0xf0,0xff,0x01,0x00,0x00,0xfe,0x03,0x00,0xf0,0xfc,0xff,0xf8,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf8,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x70,0x00,0x00,0x00,0xf8,0xff,0x33,0x00,0x00,0xff,0x07,0x00,0xe0,0xff,
- 0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xf8,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xfc,0xff,0x3f,0x00,0x80,0xff,
- 0x0f,0x00,0xe0,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xfe,0xff,
- 0x3f,0x00,0xc0,0xff,0x0f,0x00,0xc0,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x03,
- 0x00,0x00,0xfe,0xff,0x3f,0x00,0xe0,0xff,0x8f,0x00,0x00,0xff,0xff,0xf9,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xf8,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xe0,0x03,0x00,0x00,0xff,0xff,0x3f,0x00,0xf0,0xff,0xcf,0x01,0x00,
- 0xfe,0xff,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xf9,0x3f,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0x00,0x80,0xff,0xff,0x7f,0x00,0xf8,
- 0xff,0xff,0x01,0x00,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x73,0x3e,0x08,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x0f,0x00,0xc0,0xff,
- 0xff,0x7f,0x00,0xfc,0xff,0xff,0x01,0x00,0xfe,0xff,0x5b,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x09,0x08,0x00,0xfb,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0x0f,0x00,0xf8,0xff,0xff,0x7f,0x00,0xff,0xff,0xff,0x03,0x00,0xfc,0xff,0xff,
- 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x03,0x00,
- 0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0x0f,0x00,0xfc,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x33,
- 0x00,0xfe,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0f,0x00,0xfe,0xff,0xff,0xff,0x00,
- 0xfe,0xff,0xfb,0xf7,0x00,0xfe,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xc0,0xff,
- 0xff,0xff,0xff,0x01,0xfe,0xff,0xfb,0xf7,0x01,0xff,0xff,0xdf,0xfd,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0xe0,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x18,0xe0,0xff,0xff,0xff,0xff,0x01,0xfe,0xff,0xff,0xf7,0xc3,0xff,0xbf,
- 0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,
- 0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
- 0x08,0x00,0x00,0x00,0x00,0x10,0xfe,0xff,0xff,0xff,0xff,0x03,0xff,0xff,0xff,
- 0xf7,0xcf,0xff,0xdf,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x07,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0xa0,0xff,0xe7,0xff,0xff,0xff,
- 0x03,0xff,0xff,0xff,0xf7,0xef,0xff,0xff,0x6f,0xfe,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x80,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,
- 0xff,0xff,0xff,0xff,0x07,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0x7f,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,
- 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x10,0xe0,0x0f,0xff,0xff,0xff,0xff,0x07,0xff,0xff,0xff,0xe7,0xff,0xff,
- 0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x01,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xff,0xff,0xff,0xff,0x0f,0xfd,0xff,
- 0xff,0xef,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,
- 0xff,0xcf,0xf9,0xff,0xff,0x1f,0xff,0xff,0x07,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0x3f,0xfe,0xff,0x83,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0x3f,0x00,0x00,0x00,
- 0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0x3f,0xfc,
- 0xff,0x81,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x1f,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xf9,
- 0xff,0x7f,0x3c,0xfc,0xff,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x78,0xfc,0x7f,0x80,0xff,0xbf,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xf8,0x3f,0x00,0xff,
- 0x9e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,
- 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,
- 0xf8,0x27,0x80,0xe3,0xdf,0xc7,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x1f,0x00,0x00,0x00,0x00,0xc0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x07,0xf3,0x07,0x80,0xfb,0xff,0x83,0xc5,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x40,0xe4,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xfe,0x07,0x80,0xdb,0xdf,0x8f,0x03,
- 0xfc,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x80,
- 0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf8,0x07,0xc0,
- 0xe3,0xff,0x0f,0x01,0xc0,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0xf8,0x0f,0xc0,0xe3,0x3f,0x1c,0x00,0x00,0x7f,0xef,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x08,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xe0,0x1f,0xc0,0xc9,0xef,0xff,0x03,0x00,0x8e,0xdf,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa0,0x1f,0xe0,0x81,0xff,0xff,
- 0x1f,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,
- 0x48,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x7d,
- 0xe7,0x57,0xff,0xff,0x1f,0x00,0xfc,0xff,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x1f,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x81,0xff,0xff,0x33,0xff,0x7f,0x3f,0x00,0xf8,0xff,0xdf,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0xc0,0x00,0xf0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x83,0xff,0xff,0xff,0xff,0xff,0x1f,0xe0,0xf1,
- 0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0xe0,0x00,0xf8,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,
- 0xf7,0xdf,0xe1,0xe3,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,
- 0x00,0xe0,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,
- 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0x00,0x00,0x00,0x20,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x38,0xf8,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf0,0x8d,0xf7,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x37,0xfe,
- 0xf9,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,
- 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xe7,0xfd,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x00,0x00,0x00,0x02,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x37,0xf2,0xc7,0xff,0xff,0xff,
- 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x02,0x80,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,
- 0xc7,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x02,
- 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x07,0xf8,0x07,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x01,0x00,0x00,0x04,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xf8,0x07,0xff,0xff,0xff,0xff,0xff,0xbf,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x04,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x03,0xf8,0x07,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x08,0x00,0x00,0x00,0x00,0xc0,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x08,0x00,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x01,
- 0xf0,0x07,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,
- 0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x0f,0x00,0x80,0x07,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x03,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x02,0xfc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x01,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0xc0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x01,0xde,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,
- 0x00,0x00,0x00,0xf0,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,
- 0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,
- 0x00,0x00,0x01,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x01,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x01,0x00,0x00,0x00,0x01,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x01,0xfe,0x8f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
- 0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,
- 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,
- 0xfc,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,
- 0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,
- 0x00,0x00,0x00,0x00,0xfc,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0xfe,0x03,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x10,0x00,0x7e,0x80,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
- 0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,
- 0x00,0x7f,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x00,0x40,0x00,0x80,0x7f,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x60,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0xe0,0x7f,0x80,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xf0,0x7f,0xc0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,
- 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,
- 0x00,0xf8,0x7f,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x01,0x00,0x00,0x00,0xfc,0x7f,0xc0,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0xfe,0x7f,0xe0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0xc0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0xfe,0x3f,
- 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,
- 0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,
- 0x00,0x00,0xfe,0x3f,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x1f,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x07,0x00,0x00,0x00,0xfc,0x3f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0xfc,0x3f,0xf0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x02,0x00,0xf0,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0xfc,
- 0x3f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,
- 0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0x00,0x00,0x00,0xfc,0x3f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x1f,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x07,0x00,0x00,0x00,0xfc,0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,
- 0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xf0,0x07,
- 0x00,0x00,0xf0,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0xc0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x01,0x00,0xfc,0x0f,0x00,0x00,0xf8,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x00,0x00,0x40,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x07,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x01,0x80,0xff,0x1f,0x01,0x00,0xf8,0xff,0xff,0xff,0xcf,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x07,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x07,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xc0,0xff,0xbf,0x01,0x00,0xf8,
- 0xff,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x80,0xc0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0xc0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xc0,0xff,
- 0xff,0x02,0x00,0xf8,0xff,0xff,0xff,0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0xe3,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,
- 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x03,0xfe,0xff,0xff,0x0f,0x00,0xf8,0xff,0xff,0xff,0x0f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x03,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x1f,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x01,0xff,0xff,0xff,0x1f,0x00,0xf8,0xff,0xff,0xff,
- 0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x01,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0x1f,0x00,
- 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xf8,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x1f,0x80,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,
- 0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xd1,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x01,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x01,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xfe,0xff,0xff,0x7f,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x02,0x10,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfc,0xff,
- 0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0x03,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x1f,0xfe,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x01,0xf0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0x0f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,
- 0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0x0f,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x01,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf8,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x80,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x3f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf0,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xbf,0xf2,0x7f,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1b,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x4f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf1,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0xe8,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xdf,0x88,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x4f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x01,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0xe8,0xef,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,
- 0x00,0xee,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0x07,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1e,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0x06,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x1e,
- 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0x1e,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x06,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,
- 0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x43,0xff,0xff,0xff,0x3f,0x06,0xfc,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0x0f,0xff,0xff,0xff,0x3f,
- 0x02,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0x77,
- 0xff,0xff,0xff,0x18,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xc6,0xff,0xff,0xfc,0xff,0xff,0xff,0x3f,0x04,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xc7,0xfd,0xff,0xe1,0xdf,0xff,0xff,0x0f,0x00,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xf7,0xff,0x87,0xff,0xff,0xff,
- 0x00,0x02,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0c,0x7f,0xb3,0xff,
- 0x00,0x30,0xff,0xff,0x08,0x02,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0x00,0x00,0x30,0xff,0x01,0x00,0xfe,0xf7,0x1f,0x02,0xfc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x01,0x00,0x00,0x80,0xff,0x01,0x00,0xf8,0xe7,0x1f,0x03,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x80,0xff,0x03,0x00,0xf8,
- 0xfd,0x03,0x03,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,
- 0xff,0x03,0x00,0xe0,0x3c,0xdf,0x03,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x03,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0x03,
- 0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x40,0x38,0xff,0x01,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x7f,0x00,
- 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x80,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,
- 0xff,0xff,0xff,0xfd,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xe0,0xff,0xff,0xff,0xff,0x7f,0xf0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0x7f,0xc0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xc0,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x80,0xff,0xff,0xff,0xff,0xff,0x07,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,
- 0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xfe,0xff,0xff,
- 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0x06,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x00,0xfe,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xf4,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x0f,0x00,0xfc,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,
- 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xe0,0x9f,0x3f,0xfe,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0x03,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,
- 0x00,0xfe,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xcf,0xff,0xff,0xff,0xe7,0x0f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0x03,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,
- 0x03,0x00,0x00,0x00,0x00,0xfc,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xee,0xff,0xff,0xff,0xc7,0x3f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x9f,0x01,0x00,0x00,0x00,0x00,0xfc,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,
- 0xff,0x87,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0xfe,0x7f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xfc,0xff,0xff,0xff,0x87,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,
- 0x00,0x00,0xfe,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0x9f,0xff,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,
- 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0xfc,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,
- 0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x38,0xf8,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,
- 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc0,0x70,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x79,
- 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xbf,0x38,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,
- 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xf1,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x38,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x8f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x18,0xfe,0xff,0xff,
- 0xef,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
- 0x7f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0x83,0x01,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,
- 0x00,0xc0,0xff,0xff,0xe0,0xff,0xff,0xff,0xff,0xff,0x07,0xfe,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0x07,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x1f,0x00,0x80,0x1f,0x00,0xc0,0xff,0xfd,0xff,0xff,0xff,0x03,
- 0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
- 0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x87,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x02,0x00,0x00,0x02,0x00,0x80,0x03,0xc3,
- 0xff,0xff,0xff,0x00,0xf4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfe,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,
- 0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x00,0xff,0xff,0x1f,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xf8,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x01,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0x1f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x0f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,
- 0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xf0,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,
- 0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0x7f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xfb,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,
- 0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,
- 0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xf8,0xff,0xff,0xff,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xf8,0xf7,0xf9,0xff,0x00,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,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,0xff,0xff,0xff,
- 0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xe7,0xfc,0xff,0x00,0xfe,
- 0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xfe,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x0f,
- 0xfc,0x7f,0x00,0xfe,0xff,0xff,0x3f,0xfc,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,0xfc,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xe0,0x1f,0xfe,0x3f,0x00,0xff,0xff,0x7f,0x00,0xe0,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,0xf0,0xff,0xff,0xff,0x7f,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x1f,0xff,0x3f,0xc0,0xff,0xff,0x01,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,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,
- 0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xbf,0xff,0x1f,0xc0,
- 0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
- 0xff,0xff,0x07,0xc0,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0xff,0xff,0x00,0xc0,0xbf,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x3f,0x00,0xe0,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,0xf4,
- 0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x1f,0x00,
- 0xe0,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x1f,0x00,0xe0,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xff,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x3f,0x00,0xf0,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,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,0xff,
- 0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xf8,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
- 0x0f,0xfe,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,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,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,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,0xfe,
- 0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xfe,0xff,0xff,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,0x1e,0xfc,0xff,0xff,0xff,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,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,0xe0,0xff,0xff,
- 0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,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,0xfe,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0xf0,0xff,0x1f,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xfe,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,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,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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/images/earth.xpm b/hacks/images/earth.xpm
new file mode 100644 (file)
index 0000000..851c89f
--- /dev/null
@@ -0,0 +1,303 @@
+/* XPM */
+static char *earth_xpm[] = {
+/* width height ncolors chars_per_pixel */
+"512 256 40 1",
+/* colors */
+"  c #243C6C",
+". c #22386A",
+"X c #2A365E",
+"o c #28485F",
+"O c #5D544A",
+"+ c #FEFFFF",
+"@ c #9B6852",
+"# c #2B446B",
+"$ c #24447B",
+"% c #D0ECF2",
+"& c #BE8F63",
+"* c #3E5C5F",
+"= c #FBF7DD",
+"- c #1C3C79",
+"; c #786A63",
+": c #244B8E",
+"> c #244484",
+", c #795C50",
+"< c #2B4384",
+"1 c #304D78",
+"2 c #5D5B58",
+"3 c #FCFCF4",
+"4 c #1B3363",
+"5 c #8DD9F0",
+"6 c #233C7B",
+"7 c #74BADE",
+"8 c #D0C89D",
+"9 c #5F6859",
+"0 c #827B78",
+"q c #233C6D",
+"w c #2C3C65",
+"e c #28448C",
+"r c #2C447C",
+"t c #2C3C7C",
+"y c #FFFFFF",
+"u c #1C346C",
+"i c #243466",
+"p c #334971",
+"a c #2C3C74",
+"s c None",
+/* pixels */
+"55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555",
+"555555555555555%5555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555",
+"5555555%%5%%%%%%%%%%%%%%%%5%%%55555555555555%55%%%5%%%555555555555555555555555555%%%5555%%55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555",
+"555555%%%%%%%%%%%555555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555%%55555555555555555555555%%55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555",
+"555555%%5555555555557555555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555555555555555%%%%555555555555%5%555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555575555555555555555555555555555555555555555555555555555555555555555555555555",
+"55555555555555555555%%%5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555755555555755575555755555555",
+"55555555577555555555555%%%%%%%%%%%%%%%%%%%%3%%%%%%%%%%%%%%%5%%%%3%%%%%%555555555555555555555555555555555555555555555555555%555%5555555555555555555555555555557557775555755555555555555555555555555555555777777555557577557577775555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557555555555555555555555555555555555555555555555555555555555755555555555555555555555",
+"5555555555555555%%%%%5%55%3%%3%3%%%%%%%%%333%%%%%%5555%%%555%%%%%%%%%3333333%%%%%5555555%555%%555555555555555555555555555555555%55%55555555555555557777777777:77777777777755757777777777777777777777777777::7777777777777:::::77777777775575555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557777777777555755555555555555555555555555555555555555555555555555555555555555555555555555",
+"55555555555555555%%%%%%3%%%%3%%3%3%%%%%%%333333%%%%%%%%%%%5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5555555555555555555555555%%%%5%%%%55555555555555777::>>>>>$:$$$6q$6r<>>::::77777777777777777777:7::>$rrrrqq$q$q-$$$>>6$>>$r<::::::::::7777577757555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555777777755555555555555555555575555575777777777775557555555555555555555555555555555555555555555555755555555555555555555555555",
+"5555555555555555555555%%3%333%%3333%%%%%%%3%%%%%%33333%%%%%%%%%%%%%%%%%%%%%%%%%%%55555555555555555555555555%5%5%%%5555%%%55555%%5555577777::::::$u-rr<<<$$q$6qq-qq-q666qqq--<:<::>:::::$$>::::$$<<:rr11:1$r$:::::1::::::<<rrr<::::<:><:::::::777777777775555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555557777777755555555555%5555555775555555557777777777575555555555555555555555555555555555555555555555555555555555555555555555555",
+"55555555555555555555555%%%%%3%%333%%%%%%55%%%%%%%%3%33%%%%33%%%%%%%%%%%%%%%%%%%%%%555555555555555%%%%%5555%5555555555555555555577::11qrr6u.11107700775555577777:0::::::<r>>$quuuqqq qu.qrqurq1:::::<::11::75577777777:7::::::<rqrrrrrrr6rrqqq::::::::::7775555555555555777777777::::::::777777:7::777755555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555777755555555577777755775757575555555555555555555555555555555555555555755555555555555555555555555555",
+"555555555555555555555555555555555%%%55%%5555%%55%5%%%%%%%%%%333%%%%%5%%%%%%%%5%%5555555555555555555555555555555555555555777777111:11:00070077075555555%555%55%5777777::1$>-6::77777::7:$q:77777::7755%55%%%%%%%%%55557777::::::1:rtrttrt$rrrraqq$<<<::777777755555777::11r1<r$<><$<rrrr$$$r>$rr$$$6:<<::::::1::::::7:7777777::::::::::::1:::1::771::::7777777777777777777777777777777777555555577577777757577777777755577555777775555557777757775555555555555555555555555555555%555555555555555555555555555555555555555555555555",
+"5555555555555555555555555555555%%%%%%%5%%%%%5%%%%%55%%%%%%55%%%55555555555555555555555555555555555555555555577::::::1:1<$r1r1q 1775555555555%7755775555555557777011r--$$<7557555%%%55%%577%%%%%%%%%%%%%%%%%%%3%55%%%%%%57777:7777::::::::<rr$ararrrrr<<rrtr::::1:1<r$<<<<<<<<<<<<<<<<<<<<<<<<<<<<<rr1rrtr<<r<rr<rrr$r$$rrrr$r<<<r<<<<<$<<r<1<<<<<::1rr::<<:::<<r<::::::::::::::<e:eee<:::::::::::::e>::77:1<e:::::::::7755557755555555555555555555555555555%%%55555555555555555%55555555555555555555%%%5555555555555555555555555",
+"5555555555555555555555555555%%%%%%%%%%%%%%%%%%%%%%%%%55555555555555555555555555555%%%5555555555555555777:::>666$q---66q100000011p*001007700777000075555555557711$1075575%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%33%%3%%%%%557777777777:1<rrr$aqrtrr<r<<r<rr1r1rr<<<<1<<<<<<<<<<<<<<<<<r$<1<<1rr1rrrr1<1<1<<<<<<<<<<<<<<<<<<<<<<<1:::::7:1<1<11:::::1:7711:1:<<<<::::::<<<r<<<<<<<<<<<<<<<<r<r<<<<r1775577<ar<<rrrr<:7755555555%%%%%%%%%%%%%%%%%%%%%%%%555555%%%%5555555575555555555555555555555555555%%555555555555555555555555",
+"555555555555555555555555555%%%5%%%%%%%%%%%%%%%%%55555555555555555555555555555555555555555555577777::1>6q6666$6$6$r1<$$$p000757770101ip1;0w22000075%%%%%%57011$---<175%33%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3%%%%%%%33%33%55577777:1q6rrrrrrar$rr1<r1<r<<<<<<<1<<<<<<<<<<<<<<1<<11r:11p0007007777011r<<1r<111<<<<<<<<<r<<<<<<<<<:::11<<<1<<1<:1:1:111<<<<<<<<<<r<<1r<1<<<<<<<<<<<<<<<<<<<<<1<<<101177000::1rrrr<rrr11755555%%%%%%%%%%%%%%%%%%%5%%55%%55555555%%%%%%%5%%555555555555555555555555555555555555555555555555555555",
+"555555555555555555555555555%%%55%%%%55%%%%555%%55555555575555555555555555555555575777:::1:::::<<$6q-$$rr$r11::<<$6rr$$qr11020075550012210000075%557755011quuu-<1:1:0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%333%333333355777:::<rrrrrr$raqaarrr<r<r<r<1r<r1<<<<<<<<<<<<<<10700700800002001700111r<<<<<1<<<<<<<1<<<1<<<1<<<<<<rr<1<<<<<<<<<<<<<<<<<<:<:<<<<<1<<r<<<<<<<<<<<<<<<<<<<1<<<<1<<111<1<00777770w::11rrrrt11755%33%%%%%%%33%%%%%33%%%55555555777777555555555%%%%%5555555555555555%555%%%5555%%%%%%%%%%%%%%%%%%%%%%",
+"%%%%%%%%%%5%555555555%5%5555%%%5%%%%%55555555555555555555555555555555555777::::1$>$qqq--q-q-q$$rr<1<$$<><rr1111111aqp1111qr2007070112**p;00075%%575701q-607775%%%3%3%%%%%%3%%%%3%3%%3%%%%%%%%%%%%%%%%%%%%%%%%%%333%3%3333333%%5757:arrrr<rrrrrqq$a$rrrrrr<r<r<r<r<r<<<<<<1<<<1<1p00800000&&0001ra6$rr<rr1<1<<<1<r<<<<<<<<<1<<<<<<<<<<<<<<<<<<<<<<<<:<<<<:<<<<<<<1<r<<<<r<<<1<r<r<<<<<<<r<r<1<<1<<<<r<rr11<<1111:1#wwwrr<<a<7555%55555555%%557755555777777::::::::::777555555555%%%%%55555555555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",
+"%%%%%%%%5555%%55555555%%%%55%%%%%%5%%%5555555555555555555555555555555577:$$-u-q-$q$r6q6$$$rrrqr111016$$$$qa<rar1aw.qrappp waqw11. .p1110007755%%57771$>>>775555555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3%%33333333%33333333333333+%55577:1rrrrrrrrrr$aaq6r$rrrrr<1<r<r<r<r1<<1<<<<r<<<<<<t1a p0pppt6<11rr<<r<<<<<<1<r<1<r<<1<1<<<<<<<<<1<<<<<1<<<<<<<<<:<:<:<:<<:<:<<<rr<<<<<<<<<<<1<r<r<<<<1<<1<r<1<rrrrr1rrr<rrrrtrrrar<11rr<1<rq<::75%%%55555555555575777777::::::::::::::::::77777555555555555%%5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",
+"%%%555555%5555555555%%5555%555555555555555555555%5555555555555555755557555777:$r$$q6r111111r6r$a1rr$r$6r$qwr-q6-6$q6qaap11prq6121<1000700557%5%5:<q--6$>6--1:77555%%%%%%%%%%%%%%%%%%%%3%3%3%%%333333333333333333333333333%577757:w11rrrrrrrrrr$r$tqrrrr<r<rrr<rrrr<rr<rrr<r<<1r<r<<<rrrart><<$<rrr1r1r<1<<1<1<1<1<<1<<<<<<<<<<1<<<<<<<<<<<<<<<<<<:<<<:<<<<<<rr<::11<r<<<<<<<<<1<<1<1<<1r<r<rrrrrrrrrrrrr1rrrrra$::77:1<1r$$rrq q17755555555555555555555555555555557757775575555755555575755555555%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",
+"%5555555555%%%%%%555555555555555%5%%%55%%%5%%55%%5%55555555555555755555555557:$6$r11001p1111::<r$qq1::qqr>a111r1<1111 a12221;000122;20000071:7771<$$$>>6>$6<1:555555777775%%%%%%%33333%33333333333333333333333333333333333%%%%57::rrrrrrrr$rrra$qaqar$rrrrrrrrrrrrrrrrrrrrr<rr<rrrr><<rrr<r<<1<rr<<<<r<r<r<1<1<1<r<r<1<<<1<1<1<1<<1<1<<<r<1<<<<<<<<<rr<::::::77771r<<<r<<<<r<rr<r<r<r1rr1rrrrrrrrr$rr<11:111111:1000777:1111;;;1rq:7557777777::::7:7777777775555555%%5%%%3+++33%%55555555555555555555555%%%%%%%%%%%%%%%%%%%%%%%%",
+"%%5555%5555555%55555555555555555555%%%55%%%%55%%%%555555555555555555555%555:$$<>$1<1pp<1r<100000:<<<001::1q1p11101000rrr11r.p000;p1ar w11:77701rq6>>>$>>$>>$6>><<$$>---q->1:75%3%%33%3333333333333333333333333333333333333333%5771111r$rrrrrr$r$qqqqqrrrrrrrrrrrrrrrrrrrrrrr<<r$<r<<rr<1<rr<rr<rr<r1<1<r<1<<<<r<r<1<r<<<<<<<1<r<r<r<r<rr<<<1<<<1rr<:7777777:0:1<1<<<<<<r<r<<rr1r1r1<1rr1<rrrrrr<<11120000000020000;00777070000000p:77:<>$$>$>$6r<6t>e::e::7777577::0;;07007087%%==%%%%5555%%%%%%%%555555555555%%%%%%%%%%%%55%%%5",
+"55%%5%%%%555555%%5%%%%%%%5%%5%%%%%%%%5%%%3%5555%55%%5%55555755555555555577:>$$$6q-q-q-6$t<111111100111111aq1<qaa.101pqr10006w;;00;000075%5%%5%0r$>6$6>$>6$>>$>>6>>>$>>>>>66-u:7533%33333%3333333333333333333333333333333333333%57::1rrrrrrrrrrrr$qaqqr$rrrrrrrrrrrrrrrrrrrrrrrrr1$rr$rrr1r$r<1<rrrrrrrrr<<<r1<<r<r<<<r<1<1<<<<1<<1<r<11<r<<<<<r1:7777711<1<<r<<<<<<<<r<<r<1rr<rr<rrr1<rrrr11220000000;@@00@;00;0;;;;200000000000;1$rqqrrrrrtrrrrtrrrrrrr$::777777770;;00007007550000083%%%3%%%%3++33++33%%%%%%%%%%%%%%%55%%%%%%5",
+"%%%55555%5%55555555%%%%%%%%%%%%%%%%%%5%%%%555%%%%%%%555555555555555577:::$6$$$r1:11:11r<<$q6qte11<tt6q6qqqqaaq$qqqqq$$aarp11q1112#11220221101:uu--6$>6>6>6>6>$>>>$>>>>$>$$>><q-:5%33%3%33333333333333333333333333333333333333%87711rrrr$rrrrrrrr$aqqqqrrrrrr$rrrrrrrrrrrrrrr<r<$<r1<<r<r<r<rr<r<<r<r<r<rr<<<<1<<<1<r1<1<1<r1<r<1<<1<r1r1<<1<1<::777111r<<<r<<1<r<1<<rr<<<r<rrrrrrrrrtrrrrr10@00;00;;000;0;000;2*2;;;;;;;;;;0;1p21a$$$rq6$tr$rrr6$>><<$rrr:::::::7777::::7775555%%5%%5%3++++yy++yy+3%33%++++++333%%%%%%%%%%%%%%%%",
+"3+3%5555%%5555555%%55%%%%%%%%%%%%5%%%5%%%5%%%%%%55%%%5555555557:111>$$666<$$$qq10000000001:r$rqqqq6qq6$6111rq$qq<:111< q2000001ruq11121-$::::1777::-6>$>$>$>>>>$>6>>$>>>r><$r$t$:5%33%33333333333333333333333333333333333858000;11rrrrrrr$r$rr$$rtqq$6r$rrrrrrrrrr$rrrrrrrrrrrr1rr<1<rrrrrrrrrr<rr1rr1rrr<<r<<1<1<rr<1<<<<r<r<<<11<rrr<rr<1r<11701pr<<<1r<1<1<1<1<r<1<<rr<r<<rrrrr<111122;22000;@0000;;;;;;;;;;0;;0;0000;;2p0;;20pp221111q6$>>>12::::::ra::::7777777::::2;;::::::::::77757007000878%%%5%3+++++++++++++++++++++++",
+"5%%55555555555%%577777777775%%%%%%57:77:::::::::<<1::111:::::1$6$$>6r$$$$$$$6q1000000001101001<:<$r1<q11001qqa::110;11rw00;201w a2;;;1p0;0000107755:-66$$6>6>6>>6>>><$>>>$$>$$>$<175%33333333333333333333333333333333333%7711000rrrrrr$rrrrrrrrrtqqqta$rrrrrrr$rrrrrrrrrrrrrrr<$<rrrrrr<r<rr<r<1<1<r<r<r<<<<1<<<<<r<1<r<r<r<<1<1rr<r<<rr<rr:1011<<t<r<rrrr<1<r<1<r110011r11<rr<r1q10000000000000000;0;;;;;;;;0;;00;;;2;;22;;;;;,00000000022:111200;1:01::r$$:::::::::::1p212a<r6>>>-$6q-6q--qq-qq6>:::::775%%%%%%%5555%%%7075555",
+"4rr  177777777557::::$uqq.w1:17557:$---6-66>>6>>>>>$6>>>666>>6>>>>$>$>$$$$$tq100000002<10000000001:001100;1.aa11100;0;1up21.qqqq2;0;;r19;;;;01ppp05%7:$q--6$$>$>>$>$>r>$>><$<$rt>:775%33333333333333333333333333333333%%%8800121rrrrrrrr$rrrrrrrr6$qqa$t$rrr$rrrrrrrrrrrrrrrrr$rr$rrrrrrrrrrrrr<r<r$rrrrr<1<r<11<<<r<<1<<1<r<<rr<rr1rr<rr<100001tr<r<1<r<r<rr1rr$1000000r102120021p2200;;;;@;0;;0;00;0;;;;;;;;;;;,2OOO,,,,;;22,,,;0@@@@@,@@@000;,;222;1::rrrrqq$6>::>>0000000001:001::>$$r6<rrr$$r>:<$r6qa11p1r1aqii44wwX4444ii4",
+"pp.44rr$$$$$$$<r<<$$$6$$6$6-q-u1:<-6$6$>>>><><><<>>><><<><>$>>>$>$<>$$>$$6$6tt1100201u1100000000000000*0;90:qqqq.a1:1*a12;1<qqq 1;2;0222;00;;00;;;08807:11rq66r>6><>$<$<>>$>$>r$::71:053333333333333333333333333333333335000;77::6rrrrrrrrrrrrrrrrqq6q$rr$rrrrrrrrrrrrrrrrrrrrr$<r<r<rrrrrrrr<r$r$r$$r$r$$$r<1<<1<<1<1<<r<r<r<rrr<r<1rrrr:10010:1r<1r1<rrrrrrr<11000000r000p10;00000;2;;@@;;@;;;;0;00;0;0;;;;;,,,22,OO,,OOO,;,,,,;;;;;;0000@08@0;00;;,;1:$q1;2p1121p12000000000000001::<q6>>$$t$$6$66$$$$aqq-qq.qu....444ui.i4wp",
+"211u.qqq66$666666q$6r$r$6666r111*111:1<<$$>$>$>$>>$>$$$<><><>r$>r>$$$tq66$$q$qqqa1qqq$q111010000009;;9999901$rr6qqqw.q1099*91$qaw1222;0000;00002;0,08570770:::66$<$>><$<$<$<$<$>rr$:::17333333333333333333333333333333%%%%5:u:071rrrrrrrrrrr$rrrr6r$qqqt$rrrr$rrrrrrrrrrrr$r$r$rrrr$rrrr$rr$$$rr1p121pp22021<$<1<1<<<<<1<rrrrr1<1rrrr<r<rr<<11101<r<<rrr<rrrrr1;0@@@@001a000000;0000012;;;;;;;;;00;0;92;2222O,,OO22OOOOOOOO9OO2O;;,,;;20;OO,OOO088;;,;00;22;;00,;000000;;;;000000;00000;11:20000011rq$aa6qqqqq.u..444444444.4i1p",
+"44..qqq$6rrr$$$6$$t66$66<11::0002;00000011;011:11<<<1:>>66>r$$$$6$6$6111w11<qq$6qq$6qqqqa:10291:19999***99*9**::< qq$qw09****1aqqqp1112200;2200112000850000857::<$>$<$>$>><$<$>r6>7777:7533333333333333333333333333333%075755711prrrrrrrrr$rrrrrrr$aqrt$rrrrrrrrrrrrrrrrrrrrrrrrrr<rrrrrrr11pp20;00000000002$11$$$r<<<<<r1<1<r<rr<rrrrrr<rrrt<<t1rr111<<1<r$rrr10@00;;01100;;;;;00;@012;;;;;0;,,29;;92992,,OOO,,O,2OOOOOOOOOOO2O2OO;;,,,;;0;9;000;OOO0888&,,088,2,;;;;,,;;0;000;0;;00000000000000;;p$>$rr$q.q. 1wi111ar qww44444",
+"uuu.qqqqtq$tqr$6$$r666$<0000;29;;;;;;;;;;;00;999999;;111::<$6q$111111200010:11011099111$q1101************12*92:awr$10911po*****rr<qqa.100221rw11< 10;;0000;;075:1$t$>$<><$<r><$>$<:77:1p7%33333333333333333333333333333+33357:1rrrrrrrrrrrrr$rrrr$6aqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr$r1r120@;9;000000000000000011111r$<rrr<1rrrrrrrr11:1rrrr<rrrr$r11p0000;211r120000;0p100;;;;;;;;@;00;;;,;2222;22,22O,O,,,O,OOOOOOOOOOOOOOOOO,,OO;,,;,08&888&,OO,00888=&O08=0O,,,2,,,,,,;;;;0;;;;;,;;;;;0;;00;;;01011101011111pu100000;;0011pw",
+"pwuuqq6q$6q$66rqr6q1:1000022992922;;;9;;;;;;0000000000001001::2229220;00;000000990999999***0*11*211****p*111111aq<a*99*oqr*****1*01$qq1;;;;0<qq<<qa112;;0000;901q q6$>>r><>r>>><$$66-q$17%3333333333333333333333%%3+%%%5777:6qr<rrrrrrrrrrrrrrrrrr$qaa6$rrrrrrrrrrrrrrrrrrrrrrrrrrr112;20;,O999;00;;00;000000000000001<rrr<rr<1111rr111r<<102r111110110@@@@;@002110;0000p1;;;12;;;;;;;;;,;,,,,O222;,,,,,2OO,,OOOOOOOOOOOOOOOO9OO2OOO,,,;0@@0@,,,20888888@O08@;,,,,,,O2;,,,,,,;;;22,,O22;;;0;0000;2000;0000000000111000000;000000",
+"0;0pa.qqqqqqt$q666q<1000;;22992999;;9000000000000;;20;0;2009000929009,,99999999999999*99990921 1#11#q ***9**####rr##**2#*********01q1100;;;1$6qr$q10011p00;0;0077::<<6r$r$$>$><$>>$r<110%333333333333333333333333507121wa66trrrrrrrrrrrrrrrrrrrrrr6qr6rrr$rrrrrrrrrrrrrrrrrrrrrrrrrp12;;;OO*99O9;;9;9;;;000000000000000011rrrr10011rr<:00000;0000000000000@@;;;;;,;;;000pr0@@000;,;;,,;,;;;,;;,,,,2,O,2OOOOOOOOOOOOOOOOOOOOOOOOO,2000,;;&;,,,,OO0=888888080&@,,,O,,,,,2;;,,O22222,,,O,2;;;;;;0000;00;;00000000000000000000000000",
+";;000;*qq quqqqqqq$quqp;2;22222222200099222099O22929O2299**99999999999999999*999999999999999*9***999*oo9999*****99;9999**99******9;110020000<q$q6q1021rqr0000008%%%71:-$>$r$>$>>r>r<:1205+3333333333333333333+y%01qqqt$rrrrrrrr$rrrrr$rr$rrrrrrr$r$qaqrqrrrrrrrrrrrrrrrrrrrrrrr$rr$rp;@;99*9O999;;;;;999;9;;00;000000000002arr102ar<000000000000000000000;;;,;;;;;;@@00pr;;@@;;;;;;,;;;;;;22,;,,O,,2O,,OOOO99OOOOOOOOOOOOOOO2OO,,;;@022OOOOOOO2O,;080888808&,;;;O2,,,,,,,;,O,,,,2,,,,,,;;;;;;;;;;;;;00;00000;0000000000000;00000",
+"000;000p10::<-qqqquqr1<.wp*oo*229;2922929999999*92999999999999999;9999*9999999***99111992999999*99999*o*999*****99922;99O99*******9;;1122011q6a$66qqqqr1100X;00;;08%777::6rr>r>$>$$<::008+33333333333333+%%%%%51qtrrrrrrrrrrrr$1<$$$$$$$<<$$r$r$rr6qq6rrrrrr$r$rrrrrrr$rrr$rrrr<r$10@;;9*O999;;00;;;;999;9;90;002;000000001<111000000000@;0@;@0;00;00;;0;;,;;;;,,;,;;2a20@@;;;;,;;;;2;;;,,922O99O9,OO2,9OO99OO,OOOOOOOOO9OOOOOO9OOOOOOO9OOOOOOO2OO,8888000&O@88,,OO,,;;,,,,,,,,,,O22O,,,,,;;;;;;,;;00&00;;;;00000&0;;0;;;;;;;;;;",
+";*000000;00000p..11000022222***222*2*299;9999999*9*99999999999999999*999*9*999**1*1>-1*1*9*9999*9**999999999***9**929**O99******22;00111rrqqq$6t$q6qq-10000;;0001XX0070:rr6$$>r>r<$r:75773+33333333333+3%7:711aqrrrrrrrrrrrrr11001rp12p1;001$rrr$rqq$q6rrrrrrrr$rrrrrrr$rrrrrrrr$p0;99OO929;@@@0;;;0;;,;9;;,;;000pa1<111<100000000000@@00;;0@;;0;;;;;;;;,,,;;,;;;;;;;;;;@@@;,,;99;;;;O,,O,,,92,29O99,9,99OO9O9OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO2OO8808388;0&8@O,,O,,;,;,,,,,,,O,,,,,OO,;;;;;;;,;2;0008@08888&@0;2;;0;;00;;0;;00",
+"2u**p1;000012p...wp0;0;0;;22922***9**9292*O*;9OO999*9999999;999999999*9*99******::$***9**9**9****************o*****9999***********20rp;11:$qqtq$611:1:1000*O;;00:>uw111r$$$$r>$>r>rrap017+33333333333%50111qq$rrrrrrrrrrrrrr$111;000;000070;16$rt$6qqarr$rrr$rrrrrrrrrrrrrr$rr$$p;@OOOOOO9;;;0;ar6$1;;;;9;@99;0;01rr11aa1000000;0000@0@;;;;;;;;;;;;;;;;;OO;;9;,;;;;;;;;;;;;,;;29999929,99,9,,99229O9O9O9OOOO99O9OOOOOOOOOOOOOOOO9OOOOOOOOOOOOOOOOO,,@08=8808&8;,O00,,OO2,,,O,,,,O,,,,,,2,;;;2O2;O00O,0800088@;0;;0;;;;;0;;;00;0;",
+"..4uu4ip20144uii..41p1*p*wp222**O*2**22*Oo;0080O*999999*999999999999*9999*9*********9999****99*9****oo*******o***oo***************11 1;0000:-$rqq10011*200100000007$.r$$tr><>$<r>r$r$ta11%+3333333333%7-tr$rrrrrrrrrrrrrrrrrrr<<10000755%5711rr$rqqqqr6rrr$rrrrrrrrrrrrrrr$$$$r2;@,*O9OO9;;@;02$$r20;999,;2;;;@9;011100020000;000;;;;;9;99;;9;,;;;9;;,O,,,,,,2;,;,99;;;;29;999299999O,9,,,,,O99999O2OO99O9O9OOO9O9OOOOOOOOOOOO9OO,,OOOOOOOOOOOOOO*22O;8&8%=388%888800800;;;;,,,,,,,,,,,,OO2O,,O;20&,O58=888088&0;;;000000;002pXi",
+"u4.4u.uuiw..w .i...iuuuuu.w2O2*O*90*9O;100%78%5700O2O9999*9999;9,99999999**99**9999********99999****9***o**o******oo************111 120001*211qqrr1rqqq.p20000000,01<66$>>$>r>r>r<r$<$<:7%333333333+%5:rrrrrrrrrrrrrrrrrrrrrrrrr1*99070001r$r$rr6qqqqa$t$rrrrr$rrrrrrrrrr$$r1p;0,O9O*OO9@@&@02qr1;@;;;;;;;;;;;;;;;000;0000000@;;@@;,99*9999999,,;99,999OO,9O;2,;,99,;;;,O;29,9,,OO9O999999OO99999999OO9OO99OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO*2O2;00&088888=%3%8880;;,OO,,O,,,,,,,,OO;,,080088=&80;O@00;@,,;;;0;0;0;;;;w4",
+"4.4.4....44wpp1ri...$>112992**O9O0009O998%8000&88800002OOOO99999999999*99**9***999***991****99***O******ooo****o#***o*2**9*9***rqqqqrq11 r<1rrqqr<r6qq6qq.*0000112;016rr<$<><$<r>r>rrrr::8+3333+333571rrrrrrrrrrrrrrrrrrrrrrrrrrrta1<1t6q$<rrrrr$qqqqqq6rrrrrrrrr$rrrrr$$a1;,,;,,OOO*O9;;&;pa$2;@;9;;2;;;;;;,;,9;9;0@@0000;000;;;9;9999O999O99999O9OOOO9O9999,,,,OO,;,;;9,,9999OOOOOOO999O999O99O99OOOOOOOO99OOOOOOOOOOOOOOOOOOOOOOOOOO2OOOOOOOOOOOOOOOOOOOOOOO,0888=3%80000;OOOOOO,,,O,OO,O080888888OOO,,,OOO2,O,,;88000;080&0w",
+".4.4........iiw....i$1*29OO*22O920O99O20%82O2OO09205%7002;0OOO2OO9999999*******99*9*999*999*********9O9**ooo*oo#oo**o*****9916aqq6q66qqqr11rqa1rr00111111q.r#*;00: 1rq$>>>>$><r>r>rtr$t::73+33+33+%7rqrrrrrrrrrrrrrrrrrrrrrrrrrrrrr$$6$rrrrrrr$r6qq qqrqr$rr$rrr$rrrrrra2;;,999OOOOO9;;;016$rr@@;9O92292222;@,,,9;;@;@@@;;;@;;;;;99999999999999O99,OOOOOO,999;;;;9999,,99,OO99O9O9O99O9OOO99O9O999OOOO9OOOOO9OOOOOOOOOOOO2OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO;@083y38%3%8880;;02O,;0;,8,03+==8,,OO0,XXO20;;;;;0%%8880000100#",
+"..4i4......i..ii..ir0222222O****OO99;28%;O*99;009000&08870000;O02999999999O******9***9*9999*1-#1*****O***ooo*ooo*********9*aqq6q6qq6qqqq6wqqqr1ra;;000;001quuu4iw1r$q$$<$<>>>$<r>$t$<r$r::7%yy+++3+7qrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr$rrrqq  q aaqa$t$r$rt$r$r$r;@,OO9OOOOO,OO;;@0qrrr$2@,222222;2,@;;0,99;1;@@;;;,9;@,,@999999O99999999O9999OOOO,,99O,,;;9O9O9999O9999O9O9999O9O99,O99929O9O2O9OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO,OOOOOOOOOOOOOO2OOOOOOOO28@&0&8333==++%88088;088888%%=82*wpO;00242058880888=&,O2Xi44444i",
+"4i4i.i.......i...444p22O22***2****O20700****929988000800850808709999O99*9*********9********>$1*************oo*oo**oooo***2<qqqqq$q$q$6qq6qtqqqqqq2;2;,2,;0011 ..uu.qq$>>>>r>t>$<r<<r<<<<rr6057083+516rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraqq q  qaqqqq$r$6rrrrrr;;,OOOOO9OOO9O9;;;6$rr$;;992;;;0;0&@oX*9,,;;;;;0,,9999,999999O99OO99O99999999OO9OO9O9,9;;;229O999999999999O99999999OO99O99999OOOOO9OOOO,OO,,OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO2OOOOOOOOO;8000,O838&0=88%3==%=+3%%%3=8,Xqq661;*440%=88&;;088,OXi44.4444i4",
+"i4i4i...iwwii.iuuip1wp**2*22*2O92*992;9#*90001q.p120089008820000O99O9999**O*O*****9*9********99**O*********oo*o***o******1qq6q6qa6q6q$6$q$qr6qqqqp0;;;;2;;;00..q...$$q<6r>>>><>$>r$<>r<$<<t6tte17%:-rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr6rraaq q   aqaqaqaqqq$6rr2;,OOOO9OOO9O9,,;@;1r1r2000;0;11p2;00*22,9,9,99;9,999999O999999999OOO999999OOOO9,999999,;,999OOO9999O99929OOOOO9O9O99O999OOOOO99O9O99O,O,OOOOOOOOOOOOOOOOOOO;OOOOO2O**OOOOOOOOOOOOOOOOO200000;,0%=0@,;&88&0&8&8=8888@*.qr$$qq.4088&&*;OwXw;OX44iii4i4ii4i",
+"4....i....w...4..iwp 4wwXp299*O2O2****rq20;### .u444X4X*w*;288087*OO*O99****999**************99*****o****o*******oo***9*91q6$qq$6$qqqq6qqa6qq6$qq1;;;;;;,;;;; 4..uq01$6>>$>r><$><><>r><<$<<<rrrr11r$rrrrr$r$r$rrrrrrrrrrrrrr<rrrrrrrrrrr$rr$rrrr$6$qa    q     aqaqqq$qp,,OOO,2O,2OOO,;;;;01<r$r11******;9,,,;@,,99999,999O999OO9OOO9OOO9999999O9OOOOO9,,99999,,,O999OO999O9OOOO2OO9O99OO,,9OO9,99OO9OO9OOOO,,O,OOOOOOOOOOOOOOOOOO0&OOOOO200;OOOOOOOOOOOOOOOO28;O,,,O08=80O2O0;OOOO2X*;,,@O*q6r$t$6w*8=0X4XiX444444iiiii4i4i4i4i",
+"4.4i4.4..i..i.........u.4p2**2*o*2*901u #.44u.......4.i44iw*00;9070OOOOO2*****O9**9*9****9**9*********O***o*oo***oo*******11q6q6qq6$6$qq6$6r6qqq10;;;;;;;;;;02144#2001$6><$><><<><><>r<$<r><r$rr6q$rrrrrrrrrrrrrrrrrrrrrrrr<rrrrrrrrrrrrrr$rrrrrrraaq  a #a1  a   qqqaqr;,O99*p1;;O2;;;@;*rrrrr11;@,,,;;,,,9;9,OO9,999;0,O9OOO999OOO999999999999*9OOOOOOO999O9O,,99OOOOO9O9OOO999O992999O9O999OO9OOOO9O99OO,OOOOOOOOOOOOOOOOOOOOO,0,;;2;;088;9OOOOOOOOOOOO22088OOOOO0%=&O*#qr  rqrqa66qppp#wrrq$q$wO5=,Oi1X44i.iiii4i4i4iii4i4i4",
+"iii.i.................i.....iwiw**90*#114.........i......iu4X2;;*08000920*O**O***99*****99*999******9*******oo*o*******O**9*$qqq6qqqq6$tqtq6$6qqr10;;;;;;;;;;;;2200000:$>><r<r><r<$<<<><><rr$rr$rrrr$r$rrrrrr$rrrrrrrrrrrrrrrrr$rrrrrrrrrrrrrrrrr$rqaw1 p9;pu     q qqqa12;*r6$$1;;;09;;r$p1r<$221;@,,,*,999OOO99999O;0;,999O99999OO99999O9O9999*OOOOO9,,9*99O99;299O99OOOOO9OOOOO9OO929999999O99999999O999,OOO,,OOOOOOOOOOOOOOOO2;O;,;;;88808092;9OO9O902088080OO28880;#a$raraqar$$rr6666t6$r6r1*O038O..ii...4..4....4.4..i..ii",
+"i4i.4i4..................i..i4 000p410* .....4...i..i...ii.i442;*o;70;800000O279O***99*99*99999*9**9******9o**#*****o*****99o$$$q-q6qqqq$6$a6$6q6-p0;;;;;;;;;;;00;;0;001$t><><<r>r<r><<><<<$r$rr$r$rrrr>rrrrrrrrrrrrrrrrrrrrrrrr$rrrrrrrrrrrrrrrrrrrqr1*99***p.    q  q$qtq61191a;@2;900qp01r$p;;r1@,,9O9,OOO99999O999,,,9OO999O999OO9999O9OO999O*OOOO,;,9999992999999999999O9O9OO99O9999O9OOOOOO22O9OOOOOOO,OO,,OOOOOOOO2OOOO2O9;00;O880080888@200,0888&0080808;98%=0*waarqrqtrr$tr6$rrrr$rr6$OOO7+8022i4i.i....4i4.4..4..4i.4i",
+"...4i.....................44r1002w4.1*..uiu........i.......4ii4****;*OO;0080*O90009O****99,99*99*9***o*9*****oo**oo*o**o*****999*11qqa66qqa6$qwrq$q2;2;;222;;;p;;;;;,;0;:6>>r>r<><$<<$<r<<$rrrr$r<rrr$rrrr$r$rr>rrrrrrrrrrrr>rrrrrrrrrrr$rrr$rrrr$rrara2;9O9*..         q$q10;;p-p;9;;0;r11$rr0@,;;,;,,9999OO9*O999O9999OO9O9;9O99OO9OO9999O999O999OOO;,9,,99999,9,,9999,9OOOO9O9OOOOO,99OOOOOOOOO99OOOOOOOOOOOOOOOOOOOOO2O9OO,,;;08088&888008808808&00;058000O,838&;wq6$r$r$tqr$t$6r$t$6$q$6a2OO53&&OO1w......4..4..4i4i.4..4..",
+".4.i4.4........i........ir1100144u ..u....4.u.......iii.iu....i4w*2**9O2;0280;2**O**99***999999**99**oo*9****o*ooo****o******9999;911$qqqqq$qq11qq1;;222,222;;220;;;2;;;1<>$<r<>r><<$<<<<$r$rr$rr$r$rrr$r$rrr<$rrrr$rrrrrrr<rrrrrrrrrrrrrrrrrrr$rrrr$6a12999o.          q q*999pp*;@;1;1r$<r$1@,@,,,,9,O9O9999OOOOO999999O9O999999999O99999999,99O9OO,,,9,,,,,9;;,,;;,,,,;O,OOOOOO,9O,,99O,OOOOOOOOOOOOOO,,OOOOOO2OOOOOOOOO0OOO,,,0;;880088&,28%%888008888=8&0O0=80ou$r$rqr6r$r$t$r$rqrqr6rq62OO5=@;0Oppw..4.i..i..4.i4i4.i4.4i4",
+"i4.4.i..........i..... q1110w44.................4.....i..4.i4...4499o**9;02O00;;*OO*999**9***9O**999*********o******o#******o**922*;;;1111rqqq qr1;;;22,;OO2,,;;;;2;2;;;;21e66$<>r$>r<$$><>rr$rr$rrrrr$r$rrrr$<<rrrrrrrrrrrrrrrrrrrrrrrrrr$rrr$rrr>r1111p9O99*.q           #29;*0;p;pr6$$rr$r19,,,,,9,,O9999OOO9OOO9999O99O999O9999O9999,9,99,9*OO9O9O99,@,@@@@;,,;@@@,,;;,,;,999,;,,,,,,,9OOOOOOO29OO,OOO,OOO,O2OO2OOOOO282;;OOOO;00;088800888=8808=88==8=80888;*w1rt$qrr$rtr6rr6rt$$$r$r$$r2O0=@O;,,w4.... ..4....4..4.4..4.4.",
+"4i4.4i..ii...i...i4..w11w.ii............4..4.......i..i4..u.i.4..i.wiX**O*OOOO*99229OOO99*O****OO**************oo***ooo**oooo**O**;;122;;;;a q 12;;,2222OOO*o2,,9p;;;;;;,20011r6$666$t$r$$$r$r$r<$r$rrrrr<$rrrrr$rrrrrrrrrrrrrrrrrrrrrrrrrr$rrrrrrrr*9991**O9;*w           u222*21p161r*2;21;,,9,OO9OO9OO,99OOOO9O9999999999,9O9,,99,9;@9,@@;,,9999O,,,9,,@@@@@@@@@@@@,@@,;;,;;;,,,@@;@@,@,,OOOOO2;,9;00O0O;0OOO,OOOOOOOO001090O;,O002888800888&@0;,@;;,,0&80O,,Oop*1$r6$qrr$a$t$r$$rt$t$t$r6*O8&,OO22p4..i. . ....4..4.4..4.4..",
+".4..ii..i.i.......1ai.ii..........................u......ui......4r1#4***9OO*O*29O200;09O29O9*O***29*********o#*oo*o#****oo******9;22;;2;;; ...20;2OOOOOO*****2OO****22;2;2*20p$66qrr$r$r$t$rrrr$rrrrr$r$rrrr<r$rr$rrrrrrrrrrrrrrrrrrrrrrr$rrr$rrr299;;*$r-*9@;2       .  ap*9922200*29OOOO,,,,9,,,,9O9OO,99,999O9O999O9O9O9999O,,,,,;;,@@@@@,,,;;,,,,,,@@@@@@@@@@&&@@,@@@@@@@,@@,@,@@@@@@@,O9OOOOO;2O080000OOO,,OOOOOOO001*,0;O,,;;0008808888&,88=8,,,922O,OO,O9922p22prq116$r$r$trr$r$$$$$6p0802O2u.i.....ii..4.4.4.44..4..44.",
+"..4i4.ii4.....i.wp1i......................4...........i...u.4...4uX;14w*9***2**O2*O22800002OO**99999*****o******o#o#uo***********O**22;;;;911iu*;2**Oo**********O****9*999*22;;0:q6r6r6r6r$r$rr$r$rr$<rrr<$<<$rrr$rrrrrrrrrrrrrrrrrrrrrrr$rrrrrrrrp*;@@p6r**99,;*q    qp;2999OOOOOO,99OOOOO9O,,9;,,,,OOOO99,,,,999O99,9999999999999,@@;@@@@&@,,,;,9,@@@@@@@&&&&&&&&&&&@@;@@,@@@@@;@;@@@@@@@,,OOO,;20&08&&8880,0;OOOOOOO0011000O;;080008=880@00&800&8;OOOOO9OOO9OO22O;,OO**92t$t$t$r$r6r$$$$$$#0000*14.......4.u..4..4...4.u4.4..",
+"4......iwi..w ...i..............................u.....u..........i4ip#44*99OOO**O2OOO;208809*9O9999**************oo*qq*********O2*O*O*2;;;;2p.4w9****OO*****O*****O***2**2O22;;0<qqr$rrrr6r$rrrrrrrrrr$rr$rrrrrrrrrrrrrrrrrr$rrrrrrrrrrrrrrr$rr$rr*99;91r19O999;99#qq.#*9O99*O99O9O,9O99,,OOOO9999O,,,,,,,9,,9,99O9O99999999,99,,,,@,@&&&@@@@@@@@;9;@@@@@@&&&&&&&&&&&&&&&&@@@;@@@@@@@&&&&&@,,,;,,;,;08800,,0880&,;;O2O21*;0;0@O;00880088000088%88&,08,O,,,9OO,OO9OO,OOOO22026$rr$r$r$$$$$t$$$q20;p............4...4... ...4....4",
+".4.ii..wXw...i.i................................u..u....u...4.4.i..4iwii4X99002O2**9*O*20050;*9**999999**O*******oo**1**********Ooooo**2O*292.4#2***Oo**O*******O***OOO9*9O;;;001qqqrt$t$rrr6r$rrrr$r>r$<<rrr<$rrrrrrrrrrrrrrrrrrrrr$rrrrrrr<$rrr199*1rrr29O9999;2aq pOOOOOOOOOOO9,OOO9O,,O,9OO999OOOOOOO9,,99999,,9999,;;99;,,,,,9,@@@@@@@@@@@;;;,,@@@@@&&&&&&&&&&&&&&&&&&&@@&&&&&@&&&&&&&@;@@@,;;;00;008088880;;,O2*1;0;,,00008080&0;0@;,,;088@@;;;,O,,,,@,,;;OOO,,;2222@26rr$rrr>>r$r$$rr$6*,2au q..........4...4.4.4.u.4....",
+"..4....u.ui.i.....i......................u....................4..4.i.4.4iq*900900****O*O*90009O929*2**9************o*9o****o**oO**O*******2*******o***o*o*****o**O*O;9;0;;;;p*a1p.qq$rr$rtr$rrrr$rrrrrrr$rrr<rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr<rrrrr1r6<rrrp*9999;;##pOOOOOOO,OOOOOOOOOOO9O,O9,O9OO9OOOOOOOO,,999,,,@@@,999,;,;;,@@;,@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@,;08888080,OO;OO0%888000,;;;,088&8888@@,,,,,;&08800,,,,,,@@@@,000O;,O;080pr29p$$r$r$r<$r$<r$$$$1pqqqq..............4.4.4...4..4..",
+".u.4.uu......................................u....u..4.......u4.....4.ii4w*;OoO099******OOO080099O***O*9************o9**********ooo********o**OO***OO***O**o***OO2;2;;0;;00pi410w.qqr$tr6r$rr6rrrrrrrrrrr<r$r$rrrrrrrrrrrrrrrrrrrrrrrrrrrrr<r<r<rr<r<rrr1**ppra1rr*OOOOOOO9OO9999OOOOOO,O9OOO9O9OO9OOOOOOO,999,O@@@@@,9OO9@;@@@@@;,,@@@&&&&&&@@@@@@@@&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&&&@@@80@,,&&8=088;@O,8&0@@;O;,,;@08888@@@@@@,,,,,;88&@,,@@,@@@@,@,0&;0;OO8&,Oqa;,*6r$r$rrrr<rr$r$><r6$qqq-u......u..4..u..4.4...4..u.",
+"....u.uu.u.....i................................................4....4...iX*99********O***O*000o*******O*****************#*O*****o$*********OO***o*OOo*OO*o****9*4i4w11 wiii4100<.qq6r$rr6rr$rr$rrrrrrrrrr$rr<rrrrrrrrrrrrrrrrrrrr$rrr$rr<r<<r<r<<r<r<rr1<6>r11$12O9OOOOOOOOOOOOOOOOOOOOOOOOO9O9OOOOOOO,O,,,OO,,,,@;;,99O9;;9@@@@@@@@&@&&&&@&@@@@@@@&&&&&&&&&&&&&&&&&&&&&&@&&&&&&&&&&&&&&@@&8&8&&8@O;00,@;&880;O,,;,,,,@;0&888%8@@@@@@,;,,;888888,,,,,,@,,@,O;,,,2*,8@O2rr,O;r$<r$$r>r><>r$<<>$$6$qq.q...........u.4....u...4...",
+"u.u.uuuuu...........................................u.........4.....4.4.4.4uw292X**O*****O*o0070***O992******************#****O***o********oo**OO**O***O**oO***pp*22ww11iii4w0;;;201q6$t$r$rr6rrrrrrrrrrrr$r$r$rrrrrrrrrrrrrrrr$rrr<rrrrrrrr<<1<<r<<<<<rr111$1999OOOOOOOOOO9O9OOO9OOOOOOOOOOOOOOOOOOOOO99,,,9O99OO9;;;,;,;@@,;;@@&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&&&&&&&&&&@&@,888&8880@,;0&80;0&800000;O,;;0888888@@@&@&@,,@@@088&@@@@;@,@@,,,,OO,OOO208@O*6p;*1r$r$<$$r>r><r>:<$6r66qqqq......u.u.u...u.u...u...u.",
+"...u...................................................4........4..4.4....4.44*9*oO*9**O***;*O00OO**O999*************************$:-$******o****O*O**ooO*o**9*o*OO2;p44iiii 00;;;0;1rqa$r6rt$rr$r$r$rr$rrrrrrrrrrr$rrrrrrrrrrrrrrr<rrrrr<<<<<<<<r<<r<<1<r1999;@9OOOO9OOOOOOOO,OOOOOOOOO999O9,OOOO9OOOOOO,9,;;,O;,9;;@@@@@@@@@;;@@&&&&@&&&&&&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&@;;,@@,@@88&88;@,;088@880@@0;;;O;88&&888&@&&&&@,@@,&&&880@@@@@@@@@@;,OOOOO22O08&,O1$12r$r<r>rr<$<$>r><>>$<$$$$qqqq.uu.u.u.....u....uu..uuuu",
+".u...u.u............................................................4.4.4..4i4X992*9929*9**;*O*oooO9*O9O*999*2********o**o*****p6::>--$o******o****oOoO**OOO****OO214ii..iiw12122021< qqqaq66r6rqr$rrrrr$rrrr<$rr$rrrrrrrrrrrr<rrrrr<<r<<<r<<<<<<<<<<<<r<11222;9OOOOOOOOOOOOOOOO292;2O9O9,,9OOOOOOOOOOO99;@;&@@@;;@@,@@;@@@@;;@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&&@00088&80@@@000,0&80;@,,;00&@@@&&&&&@@@@@&&&@&&000&@@@@@@@@,O,,O22OO,,;0;,Orr6p9r<<r<r<r$r$r$<<>r$<t>$t$6qququq..uuu.uuu..u.uuuuuu.u.",
+"..u......................................................4..4..4...4.4...i.i4i4o990;99OO*2*O**2**o*O**O*999999***************ooq1**$-$$#*OO*****o*o**oO*Oo**O**OO,;*. i.ir ii4i4a1i10.   aarqt$6$a$a$trrrrrrrrrrrrrrrrrrrrrrrrr<r<<<r<<<<<<<:<<<<<<<<<r<r<<rr9@;9OOOOOOOOOOO90;0;099OOOO,9999,99999O99O,;;@@,@@,@@@,O*;@@@&@@@&&&&&&@&&&92;;&8&&&&&&&&&&&&&&&&&&&&&&&&&&&&0&&&&&&&&&&&&&@&&&0;;@@&888800,,,;0008&0;@&&@@&&&&&&&&&&&&&&&&&;0@@@@@;@;;@,,OOOOOOOO,O00O21>tap,2$<<r<r<r>r><<r<><$>r$r6$6qqq.quuq.u.u.u...u......u.u",
+".u.u.u..............................................................4.4.i4.4i44o99999222**o*00*000*o*O*O*O9**999*****************OO**9;91******o***oo**OoooO****9O2;111  1riiiiiiiii...    wa aaqqq6qq$6r$rrrrrrrrrrrrrrrrrrr<rrrrr<<<<<<<<<<<<<<<<<<<<<<<<<<p,;,OOOOOOOOO;0;20;OOOOOO9OOOO9;;9;,99,;O,,;@,OXo2,@,oiiX9&@@&&&@@&&&&&;;*q-44*8&&&&&&8&00&&&&&&&&&&&&&&&&&&70&&&&&&&&&0&&@,@&&&&&&@&&&&88080;0,@@0@@&&&&&&&&&&&&&&&&&&&&&&@00@@@@@@,@@@,,,OOOOOO,O,O;;p$rr$1*1r<r<r<>r<<<$<>r>r>$$<$r6qqqququ.u.uuuu.u.u..u.u.u.u.",
+"u.u..............................................................4.4.i.....i4i4*;9909OOO*00000800000*o***OOO*99******************OO**$121::1$1OO****OOoo*OOOO**O*9**2*2111#ii.iiii......   w    qqqqqqqqqtr$rrrrrrrrrrrrrrr<rrr<<<<<<<<<:<:<<<<:<<<<<<<<<r<r<r2,9OOOOOO*O90OOOOO,O*9,,9999O9O9;;,9;;;;,;9,*iwiw9@;**w;@@@@&&&@@&&&&@p q .0@&888&&880:::&&&&&&&&&&&&&&&&8&0&&8&&&&&&00&&&&&&&&&&&&&&@@&@&8808@@&@@&@@@&&&&&&&&&&&&&&&&&@,;0&,;@@;;;@@@,OOOOOO;OOOO,;prrrrr11><<<<<r1r><$r>r<$<>$<$t$6qqqq.u.qququ................",
+"...............................................i....4..u....u..u....i.4uiui4i442;900999**20000800;000o00o*O****O*o*************O***o:$9;9*>>11oOO99OO**o*OOOOO*9ow1**9**w4i..iii....... .....  .   q  qaq$qr$rrrrrrrrrrrrr<rr<r<r<<<<<<<<<<<<<:<<<<<<<<<<<rr<r299OOOOOOOO9;OO9O2;*4p*,9,,O,,OO;;;99;;@;;9OXXwwi*;9*pw00&@@&@&&@&&&&;i.i*0&8888&&&88:7::&&&&&&&&&&&&&&&&&&8&&&&&&&&@@&&&&&&&&&&&&&&&&&&@&&@&&&@,@@&&@&@@&&&&&&&&&&&&&&@@08@,,@,;;,;@@@,OOOO,O*OOO,2p>rrrrr2;1>><<<11r<r<rr><$>$<$t$$6qqquuq.qu.q.qu..............",
+".u.u............................................i.i...............4..4.i4i4.iii*;9999999O**00008000802*7*oO***o********************o-99991$$992***1*******OO*o#w4.*;p.i4ii.i................... ..      qqqa6rrrrrrrrrrrrr<<r<<<<<<<<<<<<<:<<<<<<<<<<<<<r<<<<r9,OOOOOO9,OOO*w*O9,,Xi4*@,,O9OOO;;;99;;0;0;X.w.wwwpXi..Xp;@@@@@&&@&&@0ww.w;8&&&&88&880::0&&&&&&@@&&&&&@@&&@&&8&&@&&&&&@00&&&&&&&&&&&&&&&&&&&&&&&@@&&@&&&&@&&&&&&&&&&&&&@;8;,,O;,;;;@,,,,OOOOOOOO;,,a$rrrrr>;,;211<<<><><$<>r>>r>$$>r$66qq ..q.qq..................",
+"...........................i.i..............4.i....u..uu.u.u........i..4i4.4iiw99OO9,9999O2990000;08O008;***O***********O****OO****$>*99*9*pOO91##>#********w4i4i.p#4.i...4........................ .     qqqr$rr$rrrrrrrr<r<r<<<<<<<<<<:<<<<:<<<<r1;0;2****o*9O9OO9**22,2w.44*,O@@*iXo;@@,,OO;;;;;;;;@@*iwiwX.wi.ww.wiX2;@@@@&@@&&0w.w.40888&&888&&@@&&&&&&&&@&&@&@@,@@@@@&&@@&&@&&&0&00&@&&@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@O,,,,,;,,,O;,O,OOO,,O2O,;2r$rrrr$119;,@;9r<<<<<$<>$<$$>$<$$6r$qqqqqu.q....................",
+"................................................i.............u..4.4..4.4.iii.i9999999999999;9220;880;0000**O*O********************$>**9*9O2**>1******oooo*$4i....44........................... ..  ....   qrqtrr<rrrrrrr<<<<<<<<<<<<:<<<<<<<<<<<<r2;;,O999OOO2299O9*u44w...22i2;9,;w44Xw2@;9O,;@;,;;;@94wXww.i4iii.wiwwiX2@@&@@&8=&;i.w.X*&&&&888&@@&&&&&&&&&&&&@@&@@@@&&@@&;;&88&&&0&&&@@@@@;@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&&@;00O,OOO9OOOO,,OOO,,2*rp2p$<rrrr<12;2;;p1<<<<<<<><$<<$$$$<$>r$6qqq u...........u..u..u..u..",
+"..u............................................4............u.......i..4.444i4i*99O99;999999;0;O000;0;00080*OO**O9*******O*********1$**O*O1::>1***o***oO*O91...ii....................................... .  qa$t$rrrr$<<r<r<r<<<<<<<<<<<<<<<<<<<<<>2@,,O;,,,,,OOOOO9*.     4;24ip;;@@2*4i4X2@,;;;;;;,@@@wiiiiw*922oXiiii.44;&&@@&&&8&;www4909&8&&&&&&&&&&&&&&&@&@@@@&&@@&&&8&00&888&&&&&@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&&&&@,200OOOOOO9OOOO,OO,,2p6r<$<<rrrr<<121<<2<e<<<<<>r>$>$$$$6r$rt$66qqqq..........u.............",
+"..........................................................u.......4.iui.4..4ii4o9922990;99;99@8;28000985050o*OO999**99**O*O*O**************o*****o*ooo*O*oow.4........................................... . qq66$rrrrrr<$rr<r<<<<<<<<<<<<<<<<<<<<r>*;;,,;;,,,;;,;2*w  . .  .*2i.iw;;@&02w44*&@;@@@@@@&&&;2**;;@&&&&0;*w*op;@@&@&&@@&8&0  .p1q9&&&&&&&&&&&&&&&&@&&@@@@@@;888000&8&@&@@@@@&&@@@@&0&&&&&&&&&&&&&&&&&&&&&&&&&@&&@@&&&&@&,,,,OOO,O22OO,OOO,,,*6rrr<r<<rr<r<<1p<:e<<<<<<<<>r$r$$6tq6q6$6r6qqququ..........u.u..u..u...",
+"...u..............................................4.............ii.i4iu..iu.4.i*2*0099;;;;29;@8&O8%80o28800OOO*99999999**O*OO*********O***O******ooo*O*o#.4i...4......................................... .  qqaq6r$rrrrrrrr<r<r<<<<<<<<<<<<<<<<rr$p;;,,@;;@;,;;2 . ..    4p&@i...4 *@&&0;X20;;0;02ww;;2O@&@@@@&&&&00&&@@@&@&&&&&88@&&01 w40&@&&&&&&&&&&&&&&&&&&&&;@&@&088888&@&&@&&&&&&&&&&&&&&@@&&&&&&&&&&&&&&&&&&&&&&@@&@&@&&@@@@;;;OOOO2#*OO,OOO,,,2arrrrr<r<<<r<<<9,1:<<<<<<<<rr$t$66qq$qq6666qqqq.q......u.u...........u..",
+"........................................4...............u......4.4......i..4.i4*99**9099;;;;;&&&O08O0009050oO*O9999999999****OO**********O*O***ooOooOO*444..u.................................... .. ...  .     qa6q$r$r<rrrr<r<<<<<<<<<<<rrrrrrrra;@@,,,;@&@@@;w ww2w .  .w&@i...114p@;X2pX0&;@2pwpp,@&&@@&&@&&&&@&@@&&&@@@@&&&@&80@&0w.w.98&&&&&&&&&&&&&&&&&&@&&&0&&888888&&&&&&&&&&&&&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&@;;,2OOO2*a12O222OO22prrrrrrrr<<1<<<r<9,0<:<<<<<<r$r$66qqqqqqqq6qqqqq.u.............u....u.....",
+"..u.......................................................u........4..4i4.4.4.4w999*00;09;;;;@&0O80202;0880**OO999999999;9*O****O*O**O*OOOOOOOO*oooo**w4...u..u........................  ........... ... ...  .  q ra$$rrr<<<<r<r<<<<<<rrrrrrqaqaq2&@@@;;;&&&@&0iww *.  . ip02i   ##.4*&*4iXw0&&0ww w2@@@&&&&&&&&&&&@@&&@&&&&&&&&8&@@&;iw wq0&&&&&&&&&&&&&@&&&@&&&&&&88888&&&&&&&&&&&&&&&&&&&&&@&&&&&@&&&&&&&&&&&&&&&&&@&&&&&@@@@,;,,,922p$$*2pr$r2,02q$rrr<<<<r<<1<<<1,;;<<<<<<rrr66qqqqqqqqqqqqqqqqq......u.u....u...u......u.",
+".........................................................................i.4.i.4o9992809;;;9;;;0;8*OO*;0000*OOOO9*999999;999*****O***OOOOOOOOO*ooooo*Xui....4......................................  . .   .. ..    aqr6r$rrr<<<<r<<<rrr$$rqqaqa  w;&&@@@@&&&&&;i w... . . ... ...ww.w;;Xiiw4*0@@@2w#2@@@&&&&&&00&&&@@&@&&&&&8&&&88&&&X4www.*8&&@&&&&&&&&&&&&&&88&@&0&888&&&&&&888&&&&&&&&&&&@00&&&&&&&&&&@@@&&&&&&&&&@&&&&&&@@,,,,,,OOp$rr61$6rrp9,;026<<<1<r<<<<<<<<*O;r<<<<<rrr6qqqqqqqqqqqqqqqqqqq.u...................u....",
+".u................................u...u.4......4........u............ui...4.4uii4*99*0800;;;;;0000Oo2758800*O*O9999992999999O**O*O*OOOOOO***oOoooo*oo.4.4.iu....................................... . . ..   .  ..    qqarrr$rrrr$rr$rrr$6q       u;&&@@&&&&8&0 .............ii.ip0&&;*Xiww..w;&@;21rp,@@&&@&&&&&&@@@@@@&&&&&&&8008=88;w4..u*8&&@&&&&&&&&&&&&&&&&&&@8008880&&&&&88&8&&&&@&@@@&8&&&&&&&&&&&@@@@@@&&&&&&@&&&&&@@,,,,,,,OO;;w12p1rr$p22,,0*<1<<<<<<1<<rr*,9*<<<<rrr66qqq qqqqqqqqqquq.qqqu.....u.....u...u..u......",
+".....................................u.....4..u............qq......u.......u....4i*992002;@&@;;00029O00;7000*OO9999999999999O***O2O*OO*OOO**OooOoOOoiu....4.u.u..................................... . . . ... . ..    qqaqaarrrt6$r$r6qqq       ..2;2;&&&&&;p4....wwpwXX**XO@;*.Xp;&;4iw.i.iip00w.p1r*,@@@@@@&&&@@@@@&&8&88&&&&&0&888&&;X.w20&&&&&&&&&&@&&&&&&&&@@0&@0&8388@&&&&&&8&&&@,@@;@0@@&@&&@&&&&@&@@@,,,&&&&&&&&&&&@,,O,,,,,O92,2O;921$r$61,OO2rr<r<<<<<<1*22,O*<<rr$r$qqqqqq qquq.ququq.uq.u.....u...u....u......u.u..",
+".................................uiu..............u.u..q.uq....u..u.u..u.uuu.u.u.uX*9920;&&&;;@;0929O22;808;OOO9999999*99999OOO*OOO***OOO*OOoooo****.4.u..u......u....................qq... ........   . . .  . .  ...  qq qqraaqaqaqqqq      . ..w.4ii;2wXXiiiip2;@@@@@@@&&&&&24..4iwi..iw.w.ippw.. ##*p;@2rp;@;XX;&&&&88888&&&&&&&&&&888088&&@@&@@&&&&@&&&&&@@&@&880&0888%80@88&&&@&&8&@@880&080@@@@@@&@@@@@,@@@@&&&&&@@,,,,,,,,,,O2999O921rrrrr$p2OO21<r<<<e<e12;2O99<<<r$r6qqqqqq qqqqq.qqu.quq.uq.u..........u.......u.....",
+"..u...........................................i........u..u.....u..u.u....u...u...4*29;;&&&@@;;@;;;;*2*;0702o*OO9999999999999**OOOOOOO*OOO**ooo*O***#4..4...u....................................... . . . .. . ..           qq  a qw  .   .. ....i...XX2X.w4i00@@&&&&&&&&&&&&80i..w.i.X..i.i.w.i*22*r1prr$1<<#**#p@&&&88&&88&88&&&&&&&&&&8&&@@&&@@@@@@@&@&&&&&08@000&088&&8==8888&00&8%8&88&&@&8@@;00@,,@;,@,,,,,;@@,@@,O,,,,,,,,,OO999992rrrrrrrrr2OO21<<<1p**1*922;22r<rr66qqqq  ..ququ.qu qu.ququ.......u..u.......u........",
+"........................................4.......u.......u.q......u....u.uu..u...u.u4299@&&00@;&;,;;9009*089ooOOO99999O9*29OOO*O*****OOOOOOOoooOOO**w........u.......................q .............. ... . ..  .  .        q             .. ....X.iwi.i&&&&&&&&&@&&&&88&&&88&88&Xi.i....X.wi...w.p20;pwrrrrrrr202r1;&&888&&88&88&@@&&&&&&&&&&&&&8@&&&@@@@&&&00&8&&@;0;O&8%%8@88&8&&&80&888888&&&@&00&80@,,;;;,2,,,,,,OO,,,,,,OOO92O2999;92$$rrrrrr<*O2*1r<11;,O22O2*2111<<r$r$qqqqq.qqq.uquq...ququ.quq..........u...u...u...u..",
+"......................................4.......................u....u.u.....u...u.u.4w**2;;&&@@&@@;0;70o*;00*O*O99;O999999**OO***OO**OOO2*OooooOO*oX.u.u...4.....................................  .. ... . .   . ..                 . .... ...iii.i.i42&&&&88&8&&&&&&888&888880Xi.w..iwi..i..w...w.4 arrrr11r1r1ar*@888888888&&&8&@@&&&&&&&&&&&&&&@@&&&@@@@088800@00;,,0888%88&&8&&&&&&&&&&&&&&&&88&0&88@,,,;,,,,;,,,,,,,O,,,,OO,;999999;9;<rrrr$1112<<1<r22222*2;<<<<:<<rrrr$qqqqu .qqq.q..u qq.u.qq. u.u..u..u...u.......u....",
+".............................4.....u......4..4........u.uuq.....u......u.u.uu.u.uu.u.44p2;&&&@&@@;2;00**2;0*OOO;;;;;9OO99**9OO**O***O2O2*OOOOoO*w4u.....u4.u.....................................   .   . . . . .                .   ..  .......iii4X;&&&&&888888&&88888888888&@w444iiiiXwwXX444iww#w##rr11111rr1#9&&&8888888&&&8&&@&88&&&&&&&&&@&&&&@&&@@@&8@@0808;0@@0;@888=88&&8&@&&&&888&&&&0&&&088%8&@,,,,;,,,,,,,,,,,,,,,,O999999;9O;0$rrrrrr1pe<<122p22211p<<<<<<<<$r$trqqqq .qq.q.qqqq.uuqquuqq.q.......................",
+"................................................4.......q...u.......u.....u.u..u.u......42&;;@&@@&;2O0*oO*;OOOO;;;,;;99OO9O9**9**O*O*2OOO*OOO*o.u..u.u....u...u........................q......... . ... . . . . ...           .     ...w ........ii2&&&&@&&&888&8&&&&88888888888&;;;oiX..iX.4*00244.w#rrr<<<<111r*;@@&&&888888&&&&&&&&&88&&&@&&&&&@@@@@&&&@&&@&00@,,&0@&@,088888888&@@@&&&&&&00&088%808=8800,,,,,,,,,,O,,,,,,,O,22929992;9;0<$rr<<<1<<<<;,;*1pe:ee<<<<<<<r<rrr$r6qqq qququ...qq.quq.u.............u.............",
+".............................u..u..4.4..4....u.............q..u......uu.uu.u.uu.u..u.u..u*@00&&&&@@;90oOOoOOOOO,;;,,;9OO9O229*9**OO**Oo**OOO*#.u.u......4..........u.u..............................   .   . . .   .          .    .........i...iip&&&&&&&&&&&88&8&8&888888888&88&&&8&X4i.X40====0;14i.w1:::::<<$*&&&@&&&888888@&&&&&&@&88&&&&@@&&@@@@@&&&&&@@@,@@,,00&0;;;;88=8=888&@@8@&&88&@&8880088888808;,;O,,,,,,,,,,,,,9999O9999;9*;;0<r<<<<<<<<<<;;1e:<e<<<<<<<>r<$<r$t$r$qq qqq.qqq.qquq.uqquuu.......u.............4..",
+".......................................u...4.......................u....4.u.u..u..u.....u420;20&&&&;229*Oo*OO*O;;;,,,;9O9O9;9*99*OO*OO***OO*o4u.....u..4....u....................................q.. ...  . . . .    ..........   ..............iX0&&&&&&&&&8&&8888888888888888888&&&&;ow4440==888=800;p#$1111112@&&&8&&88888888&&&&&&&@&888&8&&&&@@@@@@&&&&&&@@@@@@&00;9;;00&&=888088&&;@&@@,@&88=8088088%808;08O,,,,,,OO,,O9999999999999;,01><<<<<<<<<e*2<<<<<<<<<<<<<<rrr$rr$t$qqquq.uq.....u.uuqu.q............u...4..4.....",
+"..................................u........................4.i4.u....uu.u..u..u..u..u.u.uuw;;440&&&@;90*O*OOO9,,,@;,99O9OO;;9*99***OOOO**OOOwu....u.....u.......u.......................q...... ....... . . .. .   .           .. .   .....wiiiwiw000@&@@&&&8&888888888888888888888&&88880*40==888888===888@9;888&&&&&&&&88888888&&&&&8&&&8%8&@&&@@@@&@&&&&&&&&@@@&&0@0999;;;,,,8==8888;80@@0&&888800888%88888808;0O,,,,O,OO,O9999;,;9299;9;0::<<<<<<<<<<::<<<<<<<<r<rr<$r$rr$$t$6qaqq uqqqq ...q.q....u...u....................",
+".....................................4......................4.i.i.u....u.u..u..u.......u.u42@pu20&@@@;29OO2OOO;2,,,,O;92;;;;99***4. .X**oO**pu..u...4..u.u.u.......u........................... ..   .. . .  .  .  ..    .....  . ... ..  . i.i.iX@00&&&&&&&8&88888888888888888&&&&&88&&===8==88888888888888&&888&&&&&&8888888888888&22;&&&&&888&8&@@@@&&&&&&&&&&&&&@;@;@;,,@;@;,;&888&8880888880@;00088%3%888%80,,O,,,,OOO,OOO2222;;2;9999;;::<:<<<<<<<:<<<<<<<<rr$r$r$6$t$6ttatqqq  q.u.q.q......q.q.........u.....4..........",
+".........................................4...................4i.u...4.u.u.uu.u..u.u...uw..ui2;p400;@@;2O;;OOOO2;,;,OO99;;pwwpwpp1u4uuu..uoOO*4u....u...........u...................................... . . .. . .               .   .. .i..i1wiii;&0&&&&&88&8&888888888888888&&&&&&&&&&&====8=88888888888888&&0&&@&&&&&888888888888804i40@&&&&&&888&@@&@@&&@@@&&&&&&;@&@@&&@@@@@@,OO;8=8=80088880;;00%=88+3%8880;OOO,,,,O,,OOO9*29;99;;;9999;:::<:<<<<<:<<<<<r<<r$r6$666t$$6$qqqaqqq ... .........................4.............",
+"..................................................................u..u....u.u..u..u..u.w.u.u4*;pw;@&@;O,;;,OOOO;O;,O999* u4u4u..4i.....u.uoO2#u...u.....4............................................. . . . .. .   .    ....  .. ...wpw2 i*;44*0&&&&&&&&88888888888=88888888&&88&&&&&&888=88888888=88=8888&&8&0&0&&&&&88888888888888X.i*&@@&&&&&@&&&@&@@@&&&0@&&@&@&&&&&&&&,@@@@@@@;O;8==88888%%%3=88%888%=800,OOOOO,O,,O99OOO9;;99;9;;99990:<:::<<<<<<<<<<<<rr$rqqaqaqqqqa aqqqq  ...q.........uq.............................",
+"..............................................................i.......u.u.u..uu.uuuu..uu.u.uw10*4X2&@;,OO2;,OOOO;2OO99w44.u.u.uuuu.uu.u..uoO2*u.....u..u.u.u....u...................................  . . . .  .  .  ....    ... . ..wwp*2p*w288&&&&&&&&8&8&&888888=88888888888888&&&88&@@8888&888888888888&88&0020&@&&88888888888888;4.X20&&&&&&@&&00@&@@&&&@@&&0;&&&&&&&&@,,@@@@@;@@,O,008%883=83=&,8&0;000,,OOOOO,OO,O,OOOOO9999999;999;1:::::::<<<<<<r<r<rr6qqqqqqqqq  q   q q ........................u....................",
+"..u.................................................................u..u.u.u..u.u.uu.u..u..ui20014i2@;O2O2,;OOOO22O99*4uu..u.u..4.u..u4..uoOO*.u.uu..u..u.u..u....u.........u........................ . . .  . ..w .w.  ....   . ..  wwi4ww4w888@@&&&&&&&&&&&88=8888888&88888&888888888&,,&888&8888888888888&8&&1 10@&8888&&&8888888889i.4.0&0&00@&&&&@@&@@&@@@@@0&&&&&&&&@@,,;@;;@@;@@,,OOO00&8,;88,O2,OOO9,OOOOOOO,O,OOOOOOOO92999;999990:e::::<:<<<<<<<$r<rrraaq          .  ... ...........................4..4..4..4..4..4.",
+".....................................................................4u.uiu.u.uu.u..u..u.u.u.4w20*44;@OO,;,,;9OOOO*O9*4u4u4.u.uu.u.u.....u.oO*#u ...u..4.u.........................................  . . . .     . ..  .     . .........i.4p888&&&&&&&&&&&&&&&888888&&&&&&&&&&&88&&8&888&@&888888888=88888==8&&&0r$2@@&&&&&&&888888888894w.X*;2*.0&@@@@@0@&&&@@@&@&&&&&@@@@@@9O;;@@@@@@;;;,,,,,,OO,OOOO,,,,O,O,OOOOOOOOO,OO9OOOO9;9;999999::::::::<<<<<r$r<r$$rqqa          . . ...............u.........u..4...................",
+"..............................................................i.i......u...u..u.u..u.u.uuuu.u.44;044p;;O22,;;,OOOO**9ou4.uuu..4.u.u.u..u...X**.uuu u..u.4..u..u....u............................... .. . . .     . .   . ..  . ........iii40888&&&&&&&&&&&&&&&&88888&@&8&&000&&&&&8888&&&&88888888&88=88888888&&91r10;,,,@&&&888&&888880004wi4.0*p00&0&&@000&@@@&@@&&&&@@&@@,;,,;,@@@@@;0@@;@@,9OOOOOO,OO,,,O,,,,OOO,OOOOOOOOOOO9299999999<<<:::<:<<<<r<<rr$rrtaqa   .     .. .....................u.....................u......",
+".................................................................i..4.....u..u.u.u.u.u.....u.u.4;0144w;;O;0,,;9O**O;;.u.u...u.u..u.u.....u.u.w... . .u.u..u..................u..................... . . . . . .   . . . .   .  .......i..4w888&&&&&&&&&&&&&&&&88888&&&8&&8&@00&&&88888&&&&88888888888888888888&&@;$w10,,,@&&&&8&8&88888&804i4w0&#iwwop*02*o*2pp@&@@&&@@@@@,9;@@;,,@@@@@@@@@@;0,;;OO,,OOOOOO,O,,,OOOOOOOOOO,OOOOOO9O99999;1<<21:<:::<<<<rr$rr$r$qqq     .   . .  ........................u..................u....",
+"...........................................................................i........u.u.u.u.u.uuX00$44X;@O;O2O99O**994u..uu.4..u..u.u.u...u.uuuuwouuq.u.u.....................................  ... . . . . . ... . .  .     .   w.X.X.iiX8=8&&&&&&&&&&&&&&88888888&888&&&&&8&&&&8888&&88&888888888&8===8=8888&&&01 #0@;,@&&&&&&&&&&888889w*108&*iXiw.i4i4iX4X42&@&&&&@@@,,9,,@@,@@@@@@@@@;@;0;;22OOO,OOOO,,,,OOO,OOOOO,OOOOOOO2O9999991:<<2O1e:<<:<rrr$rt$trqaqq      .   . .. .........................u....................u.",
+".................................................................i.i...u......u...u..4.4.u.uiui.u4*0r4uX0;O22OOO***O9.4u.u4u.u.u.u..u....uu....i.#....u...u..u.u............................... ....   . . . .  . .w. .  . .  ......i..i40=88&&&&&&&&&&&888888888=8888&&&@&&&8&&88888&&888&&&&888888=====88888&&&&;.#r0@,,@&&&&&&&&&88888&8=888&000*iwwwXXwwXw.w20&&&&@@@,;@@@@@,@@@@@@@@@@@,;09;;99,OO,OOOO2,OO,,,OOO,OOOOOOOO9O2299;2<r1p,2<<<<<r><$r$$$tqqaq         ..     ...............................u..u..u..u........",
+"...............................................................i.......i.4.......ui.4.4.4.4.4..4.u4p14.4X;O,OOO*O****4...4u.u.uiu..u..u.4woooo4uuu4.. .u...................................... ....... . . . . . . ..w.   .  ..  ....iw4w=88&&&8&&&&&&888&88888=88888&&&@&&&&88&8888&&8888&@&88&88888888=88888&&&&&p rr0;;@@&&&&&88&88&888&8888&&090piwXwXwXwwX.4w;@;@@,@@,@@@@;,,@@@@@@&@@@;;;00;;2O,O,O,OOO,,,OOOOOOO,,OOOOOOO929991$rrr*,2r<<<<rr$r$qaqq aq   .      .    ..............................4.............u..u...",
+".......................i....wrii.............................i..............i.....u..4...4.4.4....u44.444w2;;*O*o**o*.uu.u.u.u.4.uuu.u..oowo**oo. u........u......................................... .. . . . . . .     . ..  .....X.iw888&&&&8&&&&&888888&&8888=888&&&&&8&&88&8&&&&&888&&@&8&8888888888=888&&&&&&&*. ;;;&&&&&&&&&8888888888&&&8&&80X.wwwXXXXwwX.2;,@;;@,,;@@,,,@@@@@@@@@@@@;;00:19OO,,,O,O,,OOOOOOOOOOOO,,9O,O9*paaqarrrr21$<rrr$r6qaqq      .....         .     ............................u..u..u..........",
+".u..u.......................#w 1..............................iX.....u..u..4..4....u4.4.4.4.4.4.4.4.uu44wi2;29OOoooo*.4.u.u.u4u...oo4.u... u.ioo*o.4u...u. .i....................................... ... . . . . . .    . . .. ...X.i.4;=88&88&&&&&888888&8&888888888888&&8&88&&&&&&8&&@@@@@&8&&888888888=88&88&@@&@;i.9@08@&&&&&&88&8888888&&88&&&=04X.ww.Xw.XwXiw;@@;2;;;@@@,,@@@@@@@;@@@@;1:1<<1;O,,29OOOOOOOO92OOOOOO**O22Opr  w wa$arrrrrrrrq6qqqq       .  ...         .....  ....................u...............u..u..u.",
+"............................i.Xww#.............4..........i.....i...4.u..u......u.ui.4...........uu4.....i*O*OOOo*o**ou4.u.u..4io*o*ou4......uu.oo*o..4.............................................      . . .   . .   .     ...w..iX4*8===88&&888888888888888888888888&&88&88&&8&88&8&@,,@&8&888888888==88888&&@&&0p.*&000@&&&&&8&&8888888&&88&&804XwwX.ww.wXwwwiX;;X*,,,@,,,@@@@@@@@;@;00>rrrr<1;,,O9,OO2OOOO9992OOOOpqq#2X.i.w. w wqaarqarqrq$qqqw    .  . . ...              . ...  ....................u..u...u...........",
+"..u..............................w# ..........4................i..4...4.u.u.u..u.u.444.4.4.u.uu.uu4u.u.u4i2***oOOo****wu4.4u.44o*oo*.u...u..u...u.oooo..iu..u....................................... ... .. .  .... . .     .... ...i..42==88&8=8=8888888888888888&&88888&&&8888&&88888&@@@@888&8888888888888888&8&@@pwi*000&&&&&88&888888888888880pXww. w..wiwXwiX.X442,,@@;9,@@@@@@@@@@&01rrrr1rr12,;,O,,OOOO2999O92Op. .#*pi....w     wqw$wqqqa q        ..  ..      . .  ...... ..................................u....u....",
+"................................i4*1............i....................4..u.....u.u..u..4.4.u.uu.u4..4.u..uuX9***Ooo*oO*o4.u..uuiooo*ou..u.........u.i...4oo*oo....................................... . ... . ..    . . .  .........wi.i4;=8888888=8888888888888888888888&&&&&888888888888&&@&88888888888888&88888&&&;p.w4p&&&@&&888888888888888888wiww  w wwww.w.wwXwwi2@,@@,,@@@@@@@@@@@1<t111rrrrr#O,9,,OOO,,992929;1. .p;9*i.X.X.. ww w     w     q   .... . .           . .    ......... ...........................u....u..",
+"...u..............................#w...............i.........i........4.i4.4..u..uu.4..4.4.u..u... uu.u..u4Xo****ooOOoooq4u.q ooo*o.u4..u.....u..quu.u..w****o#u.................................. . . .. . . ....  . .  .   ... i.....i*==88888888888888888888888888888&&&&@&888888888888&&&&&&88888888888888&88&&&&;i.w490&&@&888888888888888880w.w. .w.w.wwX.X..wXw41;@@,O,@@@@@@@;@01trrrrrrrrrrw*;,O,OOO,O,9229O;*i .2@;w.w...w ..   wwpaw.        .   . .                ...   ....... ...................................",
+".u..............................................i...i..i.i...4..........4.4..4..u.....4...u...uuu..u.u....uuiwo**Oo*oooooooooooo**o4..u....u...u.**..4.ooo*o..w.o*o............................... . . ..... .    .       ... .... ...iii8==8888888888888888888888888888&&&@&&8888888888888888&888888888888888&8&8&&&&0w.wX0&&&&8&8888888888888&24w.w w  ww  .w..XwX.wip,,@@,,,@@@@@@@@1arrrrrrrrrraw.2;O,;OOO,OO222922w..w*wiw.Xwi.w.w w .2;2       .       . .             .    .. .....................................u.u...",
+"...............................................i....4ii4.4i...........4i..4i.4.u.u.u.u..uu.u.uuu.uuu.u..uu..4u4ioo*0;*Oooo**ooooo*ou4...u....u......4.iiiiiu..i............................................  . ..  ....  .w#.w.. ... ..iw888888888888888888888888888888&&@&@&888888888888888888&8888888888888888&&8&&@&0iw.o0&&&&8888&8&&&&&8804i.w     ww .w w  w.wwiXX;@@,,,@@@@@@@;pqrrrrrrrrrrrwwwO,,@;O2O22;9O2929*.i.iiiiX.w...w..  .9O,w....  .      . .          ....  ....  .  ...............................u........",
+"..u................................................ii.4..............4..4.iui.4.4...u..4....uu.u..u.u.u....uu4uu44p**O*O**ooo**o**ouu.uu..u.u..ui4.4.i44.i...44.i..................... .............   ... ..  .   . ..  .wwrip ....wi.4288&88&88&88888888888888888888&&&&&&&8888888888888888888888888888888888&&&&&&&&0X.ww9&&&&&88&&8&&&&02pw.. ww.w.w  . ww ww wXiw.4,@,,@@@@@@@&0pqarrrrrrra#wwwww;,02OOO229222999OO2w.w.i#.w..X..w.. w2O,w.  . . w               . .      .   .. ................i......................u..",
+"....u........................................i.i........4.4...........4..4.4.4.4.u...uu.u.uu.uuu.u.uuuuu..u...u4u.44wooowwoo***oOo4...#oqu...u.i.ii.4..ii4ii4i.i4...i.i.#......... ................... ...  . .... .       ..ipwi.....i4088888&&8&&&&&&8888&88888888&&&&&&&88888888888888888888888888888888888&8&&&&&&&0*pXi*8&&&888&8&&&824ii.w. w  . . w . w  w .wXwXi2@@@@@@@@@;1wawawwraarwrw#wwww*;pXo,,,2O9OO2O2O2O2..w.X.ww..Xwiw..2O9*i.. .      .   .     .. .  ....  ...  ... ..................i...............u.....",
+".............................................i..i.......................i...4...4u..u..u....u..uu.u..u..u..uu..u..uu44i.4u4X**Ooooo**oo**.4u.i.i4i4i.i.4..ui.4i.i4i.i.ii..........q.... ............  ... .. ..     .       w#w.. .w..i*8888&&&&&&&&&&&8&8&&88888&88&&&&&&88888&8=88888888888888888888888888&&&&&&&&&&&@0*ii*&8&&&88888800wi. w w. w.w w. wwwwww.w w.wX.X;@@@@@@@@wiw#wwwww#a#wwwww.ww.XiXX,,,O,,99999OOOO2ii..w..X. . . 42,2..w....                 .  .    .    . . . ................i..4.4..................",
+"...u....................................i.i...i..........i...4.4....4..4.i4i...4..4.u.u.u.uu.u.u.u.uuu.u.uu...u4.u4.44u4.4.4X****ooo***O*o4..u.4ii.ui4ii.i4..i.i4i4i4iii.w............q..q............... .  .   ....  .     w........4;888&&&&&@@&&&&&&&&&&&&88&&8&88888888888&888888888&8888&&8888888888&88&&&&&&@&&@&&02iX0&8&&88880*wi.w  ..  .w . . .w.w.w w. .X.XXi*@@@@@@@@w. wwwww wwww#w#ww..X.wXi2,,O,;229;,2OO2Owi.w.w..  . . .w2,ow....    .     .    ... . . ... ..... .. ....................4i...................",
+".....u.......................................i...ii....i...............i.4..iu4.4..4..u4.u..u..u...u..u.u..u.u..u..u..4.4.u.uXXXo*ooo**o*o.i4ii4i4.i4..4...i4.i4.ii.i.iiiw.............. ............... . .. .  .     .   . . ... ww.ii&&&&&&&@@@@@&&&&&&&&&&88888&8888888888888887&88888&&88&&&8&&888&&&&88&&&&&&&&&@&&&@*40&&&&80;p4..w.. w www w w.www w w.w.w.w.w.wXX;@@@@@@@pXww ww w#w ww ww.wXiwXXi*,;2;;22;2;229OOoi.....wiw .   .*;*;*pw.  .    .      .        .   .   . . .  ...............i.iii4.u..u.....u..u....",
+"...............................................i..i....4..i.4..u........i.i..i.i.4..4.i.4.u.....u.uu.u.u.u..u.u.u4u4u....u.4.u44iXX*ooo**44i4i4i4i..ii4.i.i.i.4.i4i4.iii..i........... ................. . .. .  . ... ...      . .  ..i0&&&&&@@@@@@@@&&&&&&&&&&88&8888888888888888870&&&&&&&&&&&&&&88&&&&&&88&&&&&&&@@@&&;;2208;**X4iwww. www   w w w .w.ww .ww.w w.X.iX4;@@@@@@@*.wwww wwww wwwwwwpXXXXXXi2,220;;2;;9222OXiww....w.w. . .22ww2pi. . .   . .   .        . . ........ ..  ............i.ii4i4.iiiuiuiu........4.",
+".....................................i...........ii.i..........i...4..4.4i4.4.4ui..4.4u..4.u..u.....u.u..u.u....u..u.uu.u...4....uu o**o*.i4i4i4ii4i.4.ii.4i4i.4i.iiiiiiiii........... .............. .. . ..        . .      .  w   ..i0&&@@@@@@@@,@@@@@&@@&&&&&&&&&&&&88888888888&0&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&&&@,@&&@@;0p*Xi.wwwi44www1w w w.w  w .ww ww.ww.w X.wwXi*@@@@@@@p.w...ww w.w w .wppXwwXX.w2;*X*;,2;2;,9O,o..Xw.ww.w ..w.#w2w ***#.. .      .   ..       . . ........  .   ............i.i4ii4i4i4i..4.........",
+"..............................i.....i.i........4i....i.....i.4...4i..i.i.i.i.4..4i4.4.i.4.4.i...u.uuu.u.u4.i.4u.4u4u4u4u.u.4..iuu..4 o1ooiuiii4ii4i.i.4.ii.4i4i.4i4.4.ii.ii.......................... .  . .     . .. . .  . .     .  .ia00;9,OO,,O,,,@@@@@@@@@&&&&&&&&&&888888888&&&@&&&@@@@,@@@&&&&&&&&@@@&&&&@@&&0;@@@0@0;24iiiX44.p00i wwwww.w w    .w.ww.ww.w.wwww.wXi2@@@@@;iww www wwwww.wXw#pXXXXXX#2;wXiw,,,2;,OO;p.Xw.Xwiw......pwi**pw**.  . .       . . ....... . .......  ..  .........i.i.4.i...iii4i.4i4.........",
+".....................................................i...i......i.i4.i.4.4....4.i..4..4..4.4...u.....u.u..u.u..uu.......u.u.4.u..4..4qo*o.iiiiii4ii4i4i4io*iw.i.i.iii4.i.ii......................... .. . .        .      .       .  . ..a29O99O,,OOO,@,,@@@@@@@@&&&@&&&&&&&&88&&&&&&&@@@@@@@,,@@&&&&&&&@@@@&@&&@&&&@@@@@@@0;&*4wpp0088=8X.w w  w w ww wwww www w w.w.ww.XXo;@&@@;i.wXwwwww.w. .w.wwXXXXXXXw2;iXXi*;,;22;;*iXw.X..w ww.w.pp..2,ow*o....   w.        .      . .      ...  ...............ii4.i.4iii4ii4..........",
+"...............................................i..........i4....4i4ii4i...i4.4.4.i4.i..4..4.u..4.u.u.u..u..u.u.4.uuu.uu..u.4.u.4.u.u.io**o4iiii4i4i4u4.oo*woooo444iiii44..4............... .....  .. . . . .. .    .   . .      .     . .iw;9999O,,O9OO,,,,,,,,,@&&,,@&&&&&@,&&&&&&@&&@@@@@@,@@@@@@@@@@@@@@@@&&&@@&&,@@@@@@@&&&0&&88888=0X. w w. .w .w    ww w.ww..w..w.w.XX;@@@@1iiw w.ww.w.ww.ww.wXXXXXXXw;*iw.X.*92;0*wiw.iwwX.ww.w ..*piww*2**p .. ...w        . a.... . ...... .... ...........i.....i.iii.iii4i4i.4.4...u.",
+"........................................................i.......i4ii4iii.i....4.i...4.4.4...........u.u..u...u.uu...u...u.u.4...4.u..4wo**.ui4...i44io********oopp.i.p*.woii...........  .q   ...   q    .    .          .         .  . ..iw*9999999O92999O99O,,@@;@O,@&@@,,O@@@@@&&&@@@@,,,,,,@@,,@@@@@@@@@@@&@@@&@@,@&&@@&&&&&&&88888=;4.w . www.ww.ww  w.wwww.wwwww.wwwX42@&&2p2iXwwwwiw.w..w.wXXXXXXXXXw;*piw.wwr2;2i.X.XwX...w.i .w*wi  .;2*X*p..             . .    . .     . ... .................i.i.4i4w4ii4i4..4.4....",
+"..............................................................4i4ii4ii4i4i4ii4.4.4i4...4....u.u..u.u....u.u.u4.u.4u4u.uu.u.4.4.4u.4.u.4..o*o.ooooo4uo****OXooo*oOOo**OO*1#qi.......... .q. .       q  q    . .     .       .         ..  ..i1*9;9999999O9OOOO99,,,,9OO@@,OOOO,,,,@@@@@@@OOO,,OO,,,@,@@@@@,@@@@@@@@@@@@@&&@&&&&&&&&888888X.. ww w. w.  w    w ww.ww.w..wwwiwio@&24*@2iw.w...XwiwiwiwXXiXXXXXX;@*iwiwi#0* ..wwX.ww.ww.X.w*w..w..pw4oO*u.           .  .. ... .. ...... .  ................i.iiii4ii i4i4..4.4.....",
+".........................................u......q.............44i4i4i4iiiii...i.4....4....4....u...u.u.u.u.u..u.uu..u...u.u.4.4..u.u......oo**Xioo.io*ooo*oooo*OOo*OOOO**::4i.......  . .. q      q. q qq q                      .    .  ..i12;;9;999OO*99*9999OOOOOOOO,OOOOO,OOO,,O,OOOOOOOOOOO@@,@,@@@O,@,,@@@@,,@@,@&&@&&&&&&&&&&88824ww.w w w w  .w.www ww.wwwwww.w.wwwwi*;X4;,0wiwXwXX.wwiwi.XXwwXXXXXp2,;i.wi.wwiwwww.ww.wwi.i..#w.  ...o9*2O2.. . .    . . .... .   . .   ..... ...................4i4.i.4ii.4.i..4...u..",
+"....................................u....q..u.................44i.4i4iXiXi4i4.4..4i4..4....u.4u..u..u.....u.uu.u.4uu4u4..u.4.4.u.u..u..u.4iioo44X*oooooooo*oo*OO*O**OO****2 4........  q    q q q. .  q q  . q q  .  ......  .        ..  ...10,;;999999**99999929OO,O,OOOOOOOO,OOOOOOOOOOOOOOOO,O,O,O,@,@@,@@@@@@;@@@&&&&&&&&&@@@&&&8&4 .w w w. w .w  .w .w ww w w.w.w.Xww.wiiwi2;;2iXXXwww.....w.ww#XXXXX.w;@w4wwww.wi.X.wiwwiww.wwiw.w. ..*2*OOO2wi. w..    q.    . ...     . . ... ......................i....i..4.4..4.....",
+"..........................................q....q...........4i...4ii4i4i4i4ii.4.44.4..4.u.u.......4.u.u.u.u.u.4u4uu.4.uu.u.u.4.uiu.uu.u.....4i.i.uo*oooooooooo*****Oo*O*OOO@;*4i..... .. q q q q q qq.q q q q  q q         .  .          . r .w12;,9;;99;9999;0;929,,,,,,OOOOOOOOOOOOOOOOOOOOOOOOOO,OO,O,,@@,@@@@@@@@@@@@&@&&&&@@@&&888*.w w w w w.w .w. w w ww wwwwww.w#w.Xwwwwwi2@;*iwwiwX..wiwi.XwwpXXXXXXio@;*iiwXwiww.Xw.XwXiwi.iw2w..w .*i42OOow...  .      ....        . . . ........................4iui..i..4.4.4.......",
+".......................................................4.......4i4X4Xi4iXi4i4i4ii4..4..4.4.4..u4u..4u.u.u.u..u.u.4u.4uiu.u.4..iu..u.u.u..uu..u..4Xoooooooooo*******Ooo*O*o2@;:4i...   q   qqqqqq qq q q     .qq   .   .     .     .     . a   .$1;;;;;9,9;;0;0;0;2**Xo*O,OOOOOOOOOOOOOOOOOOOOOOO9OO,99,O,,,,@@@&@@@@@0@&@&&&&&&&&&&&884w.w.w w.w w w w . w . ww w.w w. w .ww w.wiw;2www.ww.wwiw.ww.wX.XXXXXXXi*;@2.i.w.w.Xw.X.X.wiw..2,*w..##w..p22..i..    .             ...... .........................i........4.4..........",
+"...........................................u.u............i....iii4X44i4i4i4ii4i4.4i.44.4.4..4..4.4..u4..u.u.4u4uu.uu.u.u.u..4u.u..uu...u..u4..u.ioooooooo*o*******oOoOO*OOO;214u.qu.  qqqaqqqqqq qq q q q qq   q.q   .    .      .     . .  . i.w;0;0;;;;;;;;;;* ... .*,,,OOOO9,O9OOOOOOOOOOOOOOO9OOOO,,,@@@@@@&&&@@@@@@@&&&&&&@&&&8*i w w w ww.w.w w w.w.www w www..w #ww.w.w.wwiiw.iwXwX.w.X.X.wXwwi22o*4Xio,,@;iiwX.X.wiwXwwww.i*;,,0*www. .iwp....    .         . . ...i..................................4......4...u.....",
+"......................................................i.i....i.iiiX4XiXiX4ii4ii4.i.4...4.4.4.u4..4.444.u..u.u.4.u4u4u4u.4..u...u.u...u..4.4....iui*ooooooo*o***O**oo*OO****O*O;2;;;21q  qqqqqqaqaqq   q q.  q q.  . .    .       .  .  .         .i1;;2*ra wp*r .     .p0;9;2OOOO9OOOO9OOOO99OO**9OOO9,,,,@@@@@@@@&&@@&@@&&&@&@&&&&804w.w.w ww ww w w . w w w w ww wwwww w.w.w.w.w..ww w.ww.i..w.w.w.iip@@;24iw;,@@*i.ww....w.Xwiio2,,,&,ww. .w. .iw.. .      .        .   .............................................4.......",
+"..u........................................u..........4..i.i..i4iiii4i4i4ii4i44ii.4.4.4.4.4u.4..4.4..4.u.u.u.4.4u.u.u.4u.u..uiu.u.uu..u..4......4ioooooooo***oooooo*oooO*Oo*oO2O,;@@02q qara$6rqaqaqq  q q qq  q q   ..   .      .  .   .         .. r ..   ....        rr .w9999OOOOOOOOOOOOOO**99O,,,,,@,@@@@@;@&0&@&&@@@&&@@@@&&0X. w w w w   w.w www.w w w w.www w www.w.Xw.w ww.wiw. .www.w w w.wwiX,@@*4i9@,@*4wiXi*pi.Xwiip29O2;2w.. w . ..www.w. . .            .. .....................................................",
+"........................................................i...4.i.i4Xii4iXii4i4ii.4.i4i4.4.4.i4..4.4.444ui..u..u.u4u..4uu..4.4.444.4....u....4.4.u.iooo***o**o*ooooo***oOooOo*oOo*O2,;@@0rqrq6$tqa$aqqq q q qq q .           .       .       .        ..                  .. .#w29OOOOOOOOOOO*OO9OO999,,,,@@@@@@@@@@@0&@@@&@@@@@@@&&0X. w w www ww  w.w ww w. www.w w wwww.ww w.w.w.w.wiw.w.ww..w w....w..XX,@;94o@@@*iXw#.ww.X.wwo2O22O;pi. .     .# ...... . .  . .  .     .     .. ..............................u..u.......u..",
+"..........................................u..u...........i.i.i.iiii4iXi4i4.ii4i.i.4i4i4.4.4..4.i.u4u4.4.u4.u.u4u.u.uu4.u..4.44..4.4.u...u.....4.4ioOoo*******oo*o***oo*oO**oOOo*OOO2OO92qatr$rrrqaaqqqq qq qqq q q         .      .        .                            .   .i*9OOOOO9OOOOOOOOO9,99,,,,,@@@@@@@@@@@@&@0&&&@@@@@@&0w.ww ww w ww.w   w w ww  .ww www w.w www.ww.w.w.www.w..w.w.wiw.wwww.wipXX;;;O4*@@;wiwwXiwiii2;29O292;2.. . .w. i.. ipw. ..   .w    .   .. ....... ....................................4..4....",
+"..u....................... .......................u...4......ii.4iiiii4iXi4.4i4i4ii4i4i4444444.4.4...u.4.u..u4.u..u..u.uu..4..4..4.4.4.u....4..4wp29oo***o**ooo**********OO****OO*OO*oo*qr$tr6$trqraqqqqq q q q q q                                     q                 . .w2OOOOOO9*OOOOOOO;,9O,,,,,,@@@;;@@;@@@@@@@&&@@@@@@02X.w.w w # w.w www.w w w ww ww.w wwww.www w www.ww X..w.w.ww...  .w..w...wXo99;;2p2@*iXiw.i2*#9O222292@;w........#w.i**w.... .w.   . .        .  ...............................................",
+"...u..............................................4.4..i.4.i...ii.iXiiiiiX4iiii4i44i4i4i.4.4.44.4.u.u.4.u..u.u4u4u..u.u.uu4..4u.4.4.4.4......u.42*oOo*********o*O********o***oOO**O**O**#$r$rrrtqaaqaqqqqq q   q qq                       .             q          q        .p9,9OOOOOOOOO999,;;;;,,,,,@@@@;;@@;@@@@@@@&@@@@@@0pi.w.w.w wwwww w . w w w.w  w.wwww w.wwww wwww.ww.ww ww.www ww..  wwi..wwiXoX*;9@@2w**iXXwww@@@;229292,;@0wip**pw*;w..;;w..w.w .   w   ..   .. .. .....................................4.......u.",
+".u.......................... ..............u....u......4.....i4i.4X4i4X4X4i4i.4i4ii4i4..44444..4..4u.u.4..u..u..u..u.u.u...444i4.4.4.4...4i.4.4$*oooo*****o*o**o*o***o************O****Oo:$t$rt$r$$qrqaqa qq qq                              .                              .p999O99O,OOO99,,,;;,,,,,,@@@@;,@@@0;@@0@@&&@@@@@0w.wwwww w ww w ww ww.w w w w. w ww.wwww w ww.w.ww.ww wwiw.w.. ..w.w...wwwiw.www9,;@;;*wXiwwio@@@@22229OO@Owi*2**O2;wi.i;2wwi.i....... .         . . .......................................u.u....",
+"............................................q..u..........4.i.i.iiiiXi4i4i4..iii4i4i4i..44.4.i4.4...u.u.u.u.u4.uuu.u..u.uu.4.44.4.4.44.i...4.4p0oooooo***o*o*oooo**o*o**o***********O*O**:>rrrrr6$aaqaq qq  q   q                                     q q q q          . w  .2,9O999,999999,,;;;,;,,,,@@@;;@@;210&@@@@&@@@@@0w.w w w w w.ww w  w. w w . w w ww ww.w.wwww ww.ww.w.ww..ww w.w wwXw.ww.w.w.X.iwwo9;;@;2pwXwiXw@@@@;,2222,@piX*44.Xwii.iw1wwpp1X*pi...     .  .  . . ...............................................",
+"............................................u....u..u.u4.......i.i4444i4iii4i4i4i4i4.4i4.4444u.444.u.u4u.4.u.u...u..u..u.u..4...44.4.i4.4...u4;*ooo*oo**o*oooooooooo*oooo**o**o**O*******1::>rtrr6rqqqqqq qq q                                 . q          .  .            w229,O;,,,,,92,,,;;;;,,,@@@@@@;@@2r<0@@;@@@@@&@;#.ww ww#w w w  w ww w w   ww  w www ww.w w.ww ww.wwww.w w.wi   w.w .wiw....w...w*4*,,@,9pX4Xw.i;@&@,O22O2@;w4w;o*;;2iiiiw*wiwp;@@;*wp*.... ..... w.w..... ..................................4.......",
+"........................................u.....u.......4..4.u.i..i.iiii4ii4ii4iii4i4i4.4.44.4.44..4u.u..uu.4.u.uu.uu.4.u.u..4.4....4..4i4..i.4p2oooo*o***ooo**oooo*o*oo*ooo*o*******o**O****:1#a$qtqaaqaqqq q q q                        q   q   qq    q q       .           .*;;,;,,;,;9,,;,;;;;@@,@@@@@@@@@&2<0@@@@@@@@@@@p.ww ww w # ww.w w  w w ww. w  w ww .w w.www.ww.ww.w.www. w.ww. .w www X .iw..X.i*oX9O@@@9w;wiXwX;&@;O2,,@;iii*&@@;**p2ppi*w4***;@9;w 1po*wi..  . ww.ww..w .....................u...............u....",
+"................................................u...u...........4.i4i4ii4ii4i.4....4..44..444u.4.4.4.4.4.u.u.u..u.uuu.4.4u444i...4.44.4.i4..4;2oooo*oo*o***o*o*oo*oooooo*ooo*oooo*o**********oo#1>t$qqqq   q        .           ..                q                         .p0;;9;,,,99,;9,,,@@@@@@@@@@@;,@@20;@@@@@@@@@;p.wwwww w w w. w.w w w w w  w ww w .w .w.ww w w.w w.w w  ww..w.wwwiw..Xw.w.w.ww...4p.2@O,@,202.pw42&&,O,,@@24ii2@@@p4Xw*p#4Xi4wp4w**;w4#*OO9*pw.i.i...pp ..p# ........................................",
+"...................................................u..u....u..i...ii4ii4i4i..4..4..4..i.4.4.444444..4.4.u.u.u.u4.uuuu..u.44.44444.444i.i4..i400ooooo*o*ooo*ooooooooo*oooooo*oooo******oo*O*o**OO*:$ qqqq w q q                  .        .    q   q q                        .*@,;;,,,,,,,,,@@@@@@@@@@@@@@@@@@@@;@;@@@@@@p.wwww ww.w w w w w.w w w w w w  w w w. ww.ww  ww  wwww  w www.w .w w..w..ww..wi.X..XpX;,,@@@0*#9wiw;;@;@@@&2i.w@@*;;wii4X2*w;;;2iw2,;2#**99*OO92w ..... ...ww*w i............................u.u......",
+".........................................u.u..u.....u..u.u.u.u...i.4i4ii4i4i4.4..4i4.44.i444.4.4..4..4.u.u4..u.u...u.u.4...44i444.4.4.4.i.i44p*o*oooo***oooo*oooooo*oooo**ooo***o***o*OOoO**Oo*O*1O21121 q                       .           q                            . . 4*0;,,,,,,,;,@,@,@@@@@@@@@@;@@@@@@@@;@@@@&;.w wwww w ww w w w w w w w.w w     w.ww  wwwww. .ww w  ww w..w. ww.w.w..wi X ..w ...iXXX;;@@@2iwwwwi4X*ww2@;*iw.*;w,@*iXii2;w2*X;w4p;2;99O**O**O9O91a.... ...iw##w.....................................",
+"......................................u..qu.q........u.u.qu.u..i.....i4ii4ii.i.4.i4i4.i44i.4444444.4.4u.u..4u.u.uuu.u.4.44.4444i4444.4.4i.4i4q1ooooooooo*ooo*o*oooooooooo**o****oooo*o**O******29O,;;,&&;#..                      .         .q                    q    w.    . i*;;,,,,;,,,,@@@@@@@@@@@@@;@@@@@@@@@@@@&@*.www www w. w w.w w..w w.w w www w  w  ww  w w w   www. .wwww. ..w.w .w..w.w..wiw .w.Xiiw;@;@2iw.X.w..i.iXp..wiw4;*w@;wXi.44iiii4wwiXiw29999*O*OOOO**1ri.i...4p*p......................................",
+".................................uquq....u...u..u...u.u.u..u.u.4..4....4iii4i4i.i4i4..4i44444.44.u4.4...4.u..4.4u.4u.4.4..44i4444i4..i.4i4i4#00oo**o*ooo**o**oooo*ooo*oo*oooooo*oo*oo****OO***O*OO,,,O,@@;r..... .             ....                            . .       .  . .  2;;,;;,,,,,@@@@@@@@@@@@@;;@@@@@@@;@@&@;ww.w.www ww ww.w  w   w.w w . w    w w w .w. ww w.www .ww.w..w.w.www.w..ww...w.. . ...i.X.X2;@94iiwwiwX..wwiwwiwi#0oX*;p.wiXiXiXiiXwwwXw4.p*9*****o*OO91..#ww##9*ii  ............................u......",
+"........................................u..qu......uq..uq.....u.....i.4iii4iii4i4i4i4i4i4iii.444444..4.4..i4.u4.44.4..4.4.4i444i444.4.ii4i44p80oo*o*oo*ooooooo*ooo*ooooooo***o*o****oOo*****OOOOOO22,O,@@@211$.w .             .                               ..       . .w...q$1;;;,;,,,,@@@@@@@@@@@@@@;;@@@@@@@@;@@02w.w.w w w  w  w .w .w.w w.w ww   w w w w w   . w w.   w.....w.w.w.w.w.ww..Xww.w.. .w.w iiwi4**2o*w.i.iiiwi.w.X.wwwpp4XpwwiXiiiiii.iw1p#2iX441********2O9*p#**11pX4..1.4.................................",
+".................................u..u..q........u....u....u....u..4..ii4X4i4i4..i4i4i44444.4..4.4.4.44.u4.u.4..4.4..4..4.4444444i44.i4i4..44X0;oo*oooooooooo*oo*ooooooooooooo**oo**********OO*OOOOOOO,O,@@,2**$i               ....   .                               . .  . w. $r;,;,,,9,@@@@@@@@@@@@@@@@2@@@@@@@@@@;@0ww.w.w wwww ww w    w w w w .w w     w w ww www w.  w...w.w. www.w w.w.w.w...w.w.w. ..wii..iiX2@;;2ww**pwpw w.i.XwiwXXiX.i.XiXiXiXi.i4124.ii$*O*****O**O;;#iw#.i...i#1ww................u...............",
+".....................................qu..u.q........q..u...u..........4i4ii.4i.4i4i4i4i4i44.4.44444u.4.4.4.4..4.u..4..4..4i4i444444i4i.4...4.00ooo*oo*ooooooooo*ooooooooooo*oooo***o***oo*OOOOOOOOOOOO,,@@,OO;1iw.            .       .           q                      .   .   .2;;;,@,,@@@@@@@@@@@@@@@@;0@@@@@@@@@@@0p..w.www w w w.w www.w w w ww  w w    w w w .  ww.. wwww... ..w.w.w.w.w.w.w.w.w.w.wwiX...i..iww2,@@;@@@0;*wiwwwi.iXwwXiiXiiww.iX.i*piiXii..i1*22*******O;*4i4ii......iw*. ..............................",
+"............................................u......u..uq.u.u.........4iiii4i4i..4i4i4i4444i4.4...4..4.4.4.4..4.4.4.4i4..4i.4444ii..44.ui....u410oo**o*oooo*oo****oo**oooooooooo*o*********O**OOO2OOOOOO;;,OO,@1..             .         .                              .    .    i#@,;,,@,@@@@@@@@@@@@;@@@@0@@@@@@@;@@@0w w.w w ww www w.w   w w w.w .ww w  w w w.w.wwww ww  w.. .ww.www. w.w.  w.ww.w.w.w....w....iwiiiXp**O;@@;;;pwww#wwwwX.wpwow2pwwwpi2wiiii..iw92;;9O**1#p*O2pi.. i.....iw*.##..............u..............",
+"....................................u.................uq........4...4.i4i4iii4.4..i4.44iii4i4i4.44.4.4.4.4.4.4..4.44.4.4.4.4i4i44..4..........4;2o;9o*oo**o*****ooooooo*ooo***o***o*****Oo*OOOO2OOOOOO,OOOO,,;* .. .          .         .                              w  .  w  ..w;@,,@,;@@@@@@@@@@;;,@;;@;;@;@@@@@@@@0w. w www  w w w  . ww w . w .w  w w  .  w..w w ww.. ww.w.w.www.... w.  . w..w.w.w..w.w.wiwiwii.iii4.4wo*w222*;;;;*p;;2**w*;2*XXiXXXi.X...iiwpw4p;,;;q4iX*O;w4 # ......4w#...w ..........................",
+".....................................................q..u...4.....i4ii4i4iii4i.i..4.i4i4..i4i4.444.u4.4.4.4.4.4..4...4..4.4i4.4.iu4.....4.4...u10o2*o**o*o*oo***o*o*o*ooo*o*o*o*ooo**ooo*o*OOOO,O,OO,OOOO2O,,,Oi..  .                                     .                   .  .p0;;@;,,@@@@@@@@@@;@@@;;@;;;@,;@@@@@@@24w w ww.## w  .w   w w ww w w w   www .w w w w.www w. . ww.wwwww.w.w w ..ww.w.w.w.. ...ii.i.X.w....wiii.iii.wpwX29wwXXX2;2wXiXiiiXiiiXi...i.i.ipp**i. iw**;pw#i.w.i.......pw...........................",
+"..................................................uq..uq..u...4......4.ii4i4i.4i4..i.44i4.4i4i4..44.44.4.4.4.4..4..4u.4.44i4.4..4i...u4........41*ooo*oo*oo*o*o*oo*ooo*o*o**o*oo******OOO*OoOOOO,OOOOO22O**O@@*iw.. .         ...   .                      .            .  .  . . i000;;@;;@@@@@@@@@@;,@@;;;;;0@00@@@@@@;w.wwww.w.ww ww  w.  w w .w w w       w w.   w  w..ww. w. ww w w.w.w.w.w.wwww.w.wiw...w.w.iii.iiwi.i.w.wiw..i.ii.w;9iw4*@X4iXX.iXii.iii.i.i.....4i.4.w..i#*2;*#Xii..i......ww#w.........u...............",
+"............................ .......................qq.q.uq.......4.i..4i.4i4iii..4.i4i4i4.4.4...44u4.4.4.4.4.44..444.4.4.4..i.4..u..u.....u...u10ooooo**ooo**oooooo*o*o*o***ooooo****OOOo*OOOO,OO,O2OOOOO22,2i.... .                 . .   .           .. .                .  . .4*0@;;@;@@@@@@@@@@@@;@@;;;;;@00;@@@@@@@;i w..w.  w w ww  w w w w w w.   w ww . ww.w.w .www. w.www w ww. .w..w.ww.w.w...w..w.w..wiw....X....i.i...X..i...iXwwwpXiXXiiXiXiXX.iiwiiw.ii.i.i#w.....iiiX*X.wwi........4.#p....w.4.......u..........",
+".......... ....................................u......u....u........4....ii4i4i4.i.4ii4i4.4.4i.4.44444.4.4.4.444.444.4.4.i.4u4..4.4.u.u..u...u..40;;*oooo*oo***oo*ooooooo***o***o***ooOO*OOOOO,,OOOOOOOOO*O*p4..X. . .    .   .    ... .        .   ..      ..           .    .  ..p@,;@@0@&0;@@@@@@@@;@;@;;;;@00;@@@@@@@;.w.1ww .w.w..  .w w w w w         w  w.w. ww. ww w.www.w.www..w.wiw..w.www..w.w.X .w.ww...w.......X.w.wi...ii.wi...iwii.iiX.XXX**w1p...q ii.i.i.*o....iii..4.w.wr.i......wwu.......w...u..............",
+"....................... .............u. .u............ququ.......4.i...i4.4..4ii.4ii4ii4i4.4.4.i..4.44..4.4.4444..444.4.44..4.4..u...u.u...u...u4a02OOoooooo***oooooo*ooo**ooOo**oo*oOOOOOOOOO,OOOOOOOOOO99#.. .. . .               . . .                                . .    ..40&;,,@@,;@&@@@@@@@@@;;;;;;;0@10@@@@@;@;iw.##w. w .pp.w w w w w  w w .    w.  w ww www.ww w .wwww.w.www.w.www.w wiw...ww.w..w. .wi.w.w.w...i.i.wiw.w.iii.i......iiXiXXXw*p2;;*2*1iii..i19*i............i.i..i.... w.......i...4...u....u..u...",
+"................ ...... ..................q.u...q..uq.q.q...............44...4i4iii4ii4i4i4.i4i4.4.4.444444444444.444444..44.4..4.u.u....u.u.u...400o9oooooo*Ooooooooo*o*oo*oOO*oo**OOOOOOOOO,OOOO2OOOOOO,;....   .            .. .. . .      .           .         .       .    408@;,;&0@,@&&@@@@@&@@@;@;;;;;;00@;@@@;&;i w.wwr. wu90w w              w w . w . w w www.w. www.w wwww w..wiw.w...wi. .....w.i..w..X...X......w....i.i..i..iii.iXiXiiiX4*;@,;;9;9pi.ii.419*#.. ........iii.i.................4.................",
+"........................................u......u.....qq.uu.....u.......4..4.4.4i4i4ii4i4i4..4.4i4.4444.4444.44.4..4.4.4.4u..4..4...u....u...u....4u022ooooo**oo*o*oooooooo***OO*o***OOO*2OOO,,,OOO2OOOOO2;*u                .       .   w.            .             .         . ..8&,;&&&&@@&&&&@@@@@&@@;@;;;;;0;0;;;;@@@;.ww   ww..200*.   www w w www  w   w. w. wwww ww wwww.w ww w w ww.w.w  wwX. w..w.w..w . ....wX. ....w..X.X.w.w.w.i...i..i.wiX4w2,@;;,92*p....i4*;9p4i. ......ii....................w....4.......u.u...",
+".............................................q..q.quu..uq..qu.......u.4.4..4.44444ii4i44i4.4.4.4.4...44444.4444444444444..4..4444.4....u..u...u.4.410O**oooo*o*oo*ooO*oOOOoO*OOO**OOOOOOOOOO,,,,,O2OOOO,,w...               .    .. .   . .       .  .              .          w42&;;@0&&&&&&&&@@&&@@@@;;;@@;;;;09;;;0;00;iw ww w iw00024 w w       w   w   w. w  w w www www www w www.w.w.ww. ..w.....w. .. .......wi.w..w...w......X.w.ii.iXiiiw*22iq*,,,;;,2922wi.ii4;@92* ........i....i................i......4...........",
+"...................................................quqq.quq..q.........4.4..i...44i4i444i4i.4.4i4.44.4....4..44444i4.4.4.4444u4.4..4.4.....u.....u4<02Ooo*oooo*oooOOO*OOOOOOOOOOO**OOOOOO,,,,,,,,;OOO22;2u. .  ..           . .   .w   w  .          .                       .  408@;00&00&&&&&&&&@@@;;@@;@;;@;;;;;;;@0000w w  ..i#0000; .w   ww w  w     w     w.ww w w.ww ww w w w.w.w .w.w.w ww.ww w..   .. . .w.. w..w... ..w.w.w......wi..wip2OO;2*2,@,;;,,2p4iiiii40@O,@*.......i...i................4wwi4........u.......",
+".....iw ............ ...............................q...q.uuuqq..u....4.4..4.4.4..ii44i4444...4i44444444.4.4.44444444444444.4.444.4..u.4.u..u.u.u..4:02*00o9ooooooOO2OOOO2OOOOOOOO**OOOOOO,,,,,,,;O2OOOO2..  .   ..  . .  .. .w.... .   .            .                . .     ..o88&000000&&&@&&&&&@,;;0@@;;;9;;;;;;00000r. w w.#*;;;000w  ww   w w  w  w   w w  ww www.ww w w.ww www.wwww. .w...ww....w .w. .......... ... .. .w....X.w..i...i.1;,,,,,,@,,;;;,,,@2.4i.i4@@O,,2q.........i...................#ii...4.4.4.4.4..u.",
+"......iww ...................................qqq...qq.qu.q..q..u...4...4..i...4.4.4i4i44i4i.44.4.4.4444.4.4444i4i444.4.4.4.4.4......i4....u......u.u410;;00;*o9oOOOOOOOO,@;,OOOOO***OOOOO,,,,,,,,,O,OO;2*.. .        . . .  . . w     .   .                                  ..i*=8&@0000&&&&&&&&&&@@@@@;;;;@;;;;;;000771.ww w.90;000&0w.w w  w w a ww    ww    ww ww.www w wwww w.w ww.w .w..w .w. w.w..w . ..w. w  . ..  .. ...X..w..i..iwiir19,,,,@,2,,,@,@,,,,,;*i.4#@@O999 i. .......i..................www4...4.4.4.4.u4#r",
+"..........................................ra...qu....q.  ..uuu.q.u...u..u.uiui44.4i4444i44444444444444.4.44.444444.444444444..4u.uu4..u4.u.u.qq...q..4<00008;*0;oOOOO,;,,@@@;,,OO**O*OOOO,;;;;O,,OOOO,,91 . .      . . . ... .  . . . . .                     ..        .   . wi1=&&000&&&&&&&&&&&&&&&&0;;@;;;;;;;0077:1.w  w.#00;000&0  w      a w #   w     w w   ww www w w wwww...w..  . . . w.  ...w.w..... w...... ..  ..wi..XiiX...iiip;;;,@@,,,,,@@@@@@@,@@@@2pu;@O;;99*............................... i.4..4.4.4....w ",
+"........................................u..wrr  .uq .q...u...q......u.u.u..u.4.i4i4i4.444.4i44.4.4.4.4..4u44.4i4i44..4.4....4..4....4u....u...u.q.q..q4.100002;;;OO22,,,;@@@@;,;*OOO*OOOO9;;,2*9O,OOOO2O*.      .     . .    ..                                             ...i*=&&@&&&&@&&&&&&&&&&&&@@&@;@;@;;;;0701..w ww .1;;000002.w  www  aq a  w  w   . . .w. ww w www.w.w .wwwwwww w  w  .w . w... w .....w...w. .w..w..w.i...iXiwXi4w,@,@,,,,,@@@@@@@@@@@@@@,,2OOO,;,O1 .i...........................iw4.i4..4.4.44p1i4",
+".....................................q.......ar  qqqu.qu...q..u.u....q..u.u....u.4..444i444444444u4444u4.4.444444444444.u4.4u.4.u..4..u....u.uuu........4410;9OO;2O22;;;@@&@@;;;*OOOO22O2;;;2O*OOOOO2OOOp..     ..   . . ....  ....... .              .            ..        . .40800&@0&&&&&&&&&@&&&&@&&&@@@;@;;000o.ww   w .1;;;;0&&p w qa w q a w  w . w w www . w w    w.ww     ..w .ww.w ..   .. . . .........X.w.w... ..w...w.X...iiiX42@@@@@@,,,@@@@@@@&@@@@@@@@OOO,,,O*9w.......... ........... .......i.4.4.4.4.4..i ..",
+".....................................w.. ..... qw#qu..u..q.qu..q.....u.u....u.uu...4...44.4.4.4..4.4.u4444.44i4i4..4....4.u..4..4.......u...u.. .u..u....u4:009O00*2;@;@&@&&0@;;2*OOO,,2;;;;;;OOOOO2OOO9w.. . ... .  . . .    .                                          .   . wio8&&&&@&&&&&&&&@&&&&&&&@@@@@0;;;@9p.  w w w w#00;;000. q aqqqqa   wqww  w. w w . w .ww w w ww.  ww. wwwww.w   w   .w w...................... i.ww....Xiiu442&@@@@@@@@@@@@@@@@@@@@@@@@,,2;,99,O;*w............. ..u.........u.4iwi4.4.4.4.4.4i..",
+"........................................r....u....q .q.uquuu.q...u.....uu..u..u..u4.4.44.44444.444444u4uu.44.444.44.4.44u.4.4.4...u.u.....u..q.u.q.u....u.440000000;;;;@@@&@@&@,22OOOOO;;;,;;OO;9OO2OOO*q.   ..  . .. . . .... .......  . . .       ..    .   ..          .. .w.w408&@&&&&&&&&&&&&&&&@&@&&&&@@@;;9w.wwww  w w  0000082. aqq6qa   r#qw   w  w w  w  .w     ww wwww w .w w.ww  . ... . . .w....w........... . .w.w..w.w.4i#1;@@@@@@@@@@@@@@@@@@@@@&@@@@@@@@,,;9OO,,2*r  ..................$ ...u.....4.4.4.4.4.44.",
+"4..........................................u.....u q quuuqq.q.u.q..u....u.uu...u.....u.44i.4.4..4.4.4.444.444..4...u.u..4.u..4.4......u....u...qu.u........40&;70*02@,@@&&&&&@;;2;;;2,,;;,,,OOOOOOO9O991...   ... . . .  .   .      ..  .            .     .   .         w  . . ..w&&&&&&&&&&&&&&&&@2@&&&&&@@@;;@*.w w w  w w.*;;0000p   # $q #rq*r wqw ww.w w w ww wwwww  w w www   wwww.w w.. .w.w    .w. ..w. ..w.. . .. ....Xii qp;;@@@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@,O;,;,,,,,2.  .q..........u.....*p4.w...i..4.4.4.4.4.4.",
+".......... ..............q.................u.uuq.....q.qqu.quq..u........u...u.u.u.u.u..44444..4.44444.4.u..44444.u..4u.4u.4444.4u.uuu.uu.....q.u.uu.u..u..40&0&500*,;@@@&&&&@@;2;@;9292O22OOOOOOOOO2O,w...... . . . . .. ... ....  ... . ....       .      ... ..  . . . ..w  . .498&@&&&&&&&&&&&&@0&&&&&@@@@@;;;w  w  wwww w0@;0@00w rq www 11 qwqw wq  w w w w  w.w w ww w w w  w..w w   . .w ..... w    w .. ....w... ...... i4w;@@,,,,@@@@@@@@@@@@@@@@@@@@@@@@@&@@@@,OO,,,,OOO,pu  aq..qqu.u.......4.**i. ..4.4.4.4.4.4....",
+"............. ..............q.u..............uqquq.q.ququ..quq.uqu...u..u4.u..u.u......u44.4.4u.4..4.44..4.444...u.u.u4u.4.4.4.4...uu.qu.....uq.quu.....u4i4;80,&092;@&@@&@&&0&;2;@;;22OO*O*OO99OOOOO,p....   .   .w. .  .  . .   . ..     .w        .      .   .        w w   .w..408&&&&8888&&&&&&&&&&&0@&@@@;0@p w w w  w.200;;0&9. a wq q q   w a a  a w w w www w w w  w w      www ww .w . . w.   . .w .  w ..w..   . . ...p;&&&,,,,,,@@@&@@@@@@@@@@@@@@@@@@@@&&&@@,OO,,,,,,O,2q..w ...q.u...........ppi............4..4.4",
+"..4  i....... ...............q...i.i.......quq..qquuuuu .uuqu...u.quuu.u..u4.4.4u.u.uuu.4..4..44.4.4444.4.4.4.4444u4u44444.44444.uuu.uu.....u.uqu.qu......i40&0;;2,2O,@&&&@&&@,;22;;;9**22O*OOOOOOOOO9.... ...  .. .. . . .... .. . . ..... .  .    . ..  . . .. ....    .   . ..w.4280&&8888&&&&&&&&&&@&&&&0&@;@0p w# w  w .*0;,;@0p w  q a a qaqw q   a w   w w w w     ww    w w w.ww.w    . .w .w .  w   .. . . .. .  ......4*88&&&&@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,O,,,,,,OOO;p.  ..q.qquqq........u.w....4.........4.4.",
+"4....u...................q.u......i........q...u..q..qu.q.q.qu..u....u.u.u.4..4.4...uuuu.444.4.u4.4.4.4.u4.4444u.u4.44.4.4.4.4.4....u u.u......qq...u..4i4i4000;@;;O2O;@@@&&&@2;;;;;;2*29OOoOOOOO,9O;p....   .   . .. .  .  ..  . . .     . .        . .  . .. .    .  .w.w w w ..w40=&&&888&&&&&&&&&&&@&&&&00@0@0* w w   ww #0;;900ww q#a q qwq  awqa# w a a w w w w  w   www     . w ww.w.   w. w .w  .  .w ..  ..... w.w..w..i*&&&&&&@@@@@@@@@@,@@@@@@@@@@@@@@@@@@@&@@@,,,,,,,,O99;2u .....u.u.u.u.................u......4.4",
+".....................u.....uu....iu......u.........q.qu  .uqq.uu.q.u.qu.4.4.4.444.4u....u..444u..4u.i.44.444.4u4u..u.u4..44444444iu..u....u..u....uuiui.4.4w0020&;22,;,;@&@@@;;22;;0222;2***OOOO22**#u   ..  . .. .  . .. . . .. . . ..... .      .       ..  . . . ..w.    .  .w i4;=8&&&&&&&&&8&&&&&&&@&0&&@0;@&;.ww #wwq ww;0;0&;.# wwqwwwq rw # # qwqw w  w. w  ww   w    w. .w   w .w w . .  .w  .   ...w  .w .w. .... ....u0&&&&&&@@@@@@@@@@,@@@@@@@@@@@@@@@@@&&@@&@,,,,,,;,,OOO,*w.....qqqqqu...............u..........4.",
+"..4..u.u.u.u........u......u..u......4............u.qu.. ..u.u..q......u.4.4..44.4.4.4u.4.44.4..4.4.444.4u4.444.u.u4.4u4.44.4.4.4.......u......u.u..4.4iii4w8020@;2O;,@@&@;;,;29;;;;OOO*2*OOOO**w4uu.. .   q . .  . .. .  . . . . . . .w.w .      .   . . .  .w.    .w    .   ..  .ip8=&&&&&&8888&&&&&&&&&&&&0@0&0w w r w arrq20000p  a a w qq q  a qw w w a qw  w   w  w  wwww    . ww.w w .    .  .  w. .   ..  ....w..wX.w.X.40&@&@@&&@@@@@@@@,@@@@@@@@@@@&&@@&&&&&&&&@@,,,,,,,OO,,O,O q...q.u.u.u.u.........................",
+"....u.u.................u...u.u.u...4.4i.....u.......u.uu.q.uqq.q.u.qu.u..4.4.4.4.4.4.4..44.444444444.44u4.44.u4u4..u444.4.444444.4.4.u..u4...u.u..u.4i4i44p&00;0;O2@@@&&;OO2O2;2;292Ooo*oO**#qu....   q  q    . . . w.. . . . . . . . ....   .     .. . .w . . w..     .   .   ...i48=&&8888&88&&&&&&&@&&&&&&02ri w#a waarrrr$10p#a a a  a a q  a  a qq q  wa  w  w  ww.ww w  . ww ...  . . w.      w.  w w.    .   .. ...wii.iw1&@@@@@&&@@,,@@&@@,@@@@@@@@@@&&@&&&&&&&@@@@,,,,,O,,,,,O9* ....qqqu.............4......4..4..u..",
+".u......u...........q..........u....iu.4..i........uquq.u.u.u..u...u....4..4.4.4.4.4.4.4..44.4.4.4.444.4.u4.i4.u4uu4.4.4.44u4.4.4..4...u4...ui4..u4...4i4i4#&0;0@2,;,@@&@,OO0;2OO;;;;****OO*.i........  q      . . ..... . . . . . . .    .   .      . . .   . . w. .  .w. . .w. .w.4088&&888888&&&&&&&&&&&&&&0i ww w ra$rar<rrqq a wq rq   q q  aaa qw w w  a      w  w  .w w .  w   w w.  .  .   .   . .   .w.  . . .. ....i.i#1,@@@@@@@,@@,,;;@@@@@@@@@@@@&@@&&&&&&&@@@&@,,,,,O,,,,,OO2u..q.q.uq.....u.......................",
+"....u.....................u..u......4..i4i....u......u.uq...qq......u.u.u.u.u.u.4.u.4.4.44.444444444.444.4u4u44u.44444444u4.4444444.4u.4.44.4..u...44i..ii41&00@@O2,;;0@@;,,;2222O;;O2Ooo*Owii....   .  .q q q  . .    .. . . ..      ...  ... ...... w  . .      .  .w .w.    .w...4;88&&&&&&&&&&&&&&&&&&&&@&8w  wwa  rrr$<<rrrra r #a  aqa a a   a q qq qwa awa wq a  w w . .w.w   .. .  w     .   .  w . w . .. .w. ...w.i...ip@@@@@@@@@,,@@;,@@@,@@,@@@@@@@@&&&&&&@&@@@,;,OO,,,,@,O,OO......q.q.u.u....u.u.......4......u...",
+"..u.....u.....................u......iii.i4....4...u....uqqu..u........u.u.u.u.u.4.u.4..44.44.4.4.4.444.4u.444.u.444u44.44444i.4.4.4..4..444.4.4...444.4.44;&80@;OO;@@00&@@;,O2OO2,,29o*O*OXi..... ...  q      .. . ...   . . .   .   .   ..   . .    . . .  .  . .w  .   .w .  ... .488&&&88&&&&&&&&&&&&&&0&804ww a arrr$<<<r$raq#a  q aq   q q qqwqwqw qw  a  w q        .w. . w .  w. w . .  .      . .  ... . ..... . ..X....i;@@@@@@@@@@,@@@@@,,@@@@@@@@@@&@@&88&&&&@@@@@@,,,O@@@,O,,wu....q.q......u.....4..4......u......",
+"......u...............u..u.u.u......4..4.ii4i.i...........u..u.u.u.u.uu.u.u.u4.i4...u.4.i.4.444i44444.444i44.4u4u4.444444.4.4.444.4.4..4....4...4.u.i.iii4400&0O,OO,;0@@@@@,2OOOO2;;;;**OO9X...... .  .   q ..     .          .     . . ..  .... . ...    .w      ...   .   . .... . i*88&8=8&&88&&&&&&&&&&&88*.wwwqr ar$<<<<$rqa#q# a a  a r a a # q q qw a  wqw w www w w  w  w  w.    .. w w w . . .  w  .  w. .   ..... ...wi.*@@,@@@@@@@@@@@@@@@@@@@@@@@@,@@@&888&8&&&&@@@,,,O2,@,,O,*4...u.u.....u...............4.....u..",
+"..u......u....................u.u.......i4i.i..i.........uq...u........u.u.u..u..u..u...44.4.44i.4.444.4.4444.4ui44.4u4.444444.444.4.4..4.4..4.....44i.4i4i&0@00;2OO2;;@;;@,*2222;;@,O*O*O2X......  .      q . ..  ..         .    . . . .. w. . ... ..   ..      .   .  . . . .. . .w4*888==88888&&&&&&8&&&80iw w awrrr<<<<<r$aqa a $ q q  qq q q  a a q w a w a   w         w        . w . .         .  .  .  .  .. w. w....w..wi2@@@@@@,@@@@@@@@@@@@@@@@@@@@@@&&88&88&&&&@@,;,,O,,,O,;;pu....uq...u....u.u..u....u...........",
+".....4.u.....................q........u..............quuu...u...u.u.....u.u.4u.uu.uu.u4u..444i444444.4444u..4u.uuu.u4..4.4.4.44i.44....4.4..4.i4.4i.i4i.i4p&&;0;22OO2;;;@@@,2,,,;;;;,O*OO9p............. . .  .  .. .             .        ..   ..  .  .    ....    .    .  .  .   .   488888&&&88&&&8&&&&&824 w aa#qrr<<<<<rr$q#qw$aawqw$ q# a a aw q w  q w a w w   w w w w   w  w  ww .w   . w.w. .        .  ..  ..... . .....42@@@,@@@,@@@@@@@@@@,@@@@@@@@@@@&&&8@888&&&&@&@,,,,,2;;0q....u.u................u.........u...",
+"..4u....u....................q..u....u...u.i.4.i...u...qq......u.......u.u..4.4..u..u.u..4u.444.4.4.444.u.44.u4uiu.4.4.44444444i444.4.i.4..4..4.i..i4i.i442&02;O,2O;0;;;@;;2;;,2222O,9***1u...........  ...  .. ..  .             .     . ..   . .. . .   ...  .       .  .   .      ..4;88888888&&&&&&&&&804ww w# arrr<<:<<rr$ aq#q $ q q $ q q qw  qwa   wwqw a    w         w  w   w .  . . w    w .w. .  .. ..  . .w.w.. .. ...*@@@@@@@@@@@@@@@@&@@@@@@@@@@@@@@&&00&@&8&&&@&&@&@,,;;92......qu....u..u....u.................",
+".....u4.......u...............u................4......u.qquuq....u..u.u.u4.u4...u.u4.u.uu.u4u4.444444iuu4u.uu4.444444444.4.4.4.44.444.4.44..4.4.4.4i4i.4i4*&O;0,,;;0;@00@;2O;@,O22*OOO*1:......... ... .   ..  .. ..     ..   ...   .   . . ...  . .    ..   . .....     .   .   w  w  .4&8&888&&&&&&&&&888a.w #qq$rrr<<<:<<rrqa w arw wr q a a a aqr   wawq w a  w w  w w w w       w.  w   w  . .. .   w  .. ..w.. . .... .......w,,,@@@@@@@@@@@@@@@@&@@&@@@@@&&&&8;@@@&&&&&&&&&&&&,;2;14..........u.....u....u..u.u.......u..",
+".u.4.....4..u................................i4...4.......q..u............u..u4.u..u..u..u4.444i.4.4.4u4.u4..u4.4.4.4.444444444444.44.4.44.....4.4.4i4.i440@O00@;@@@@@@;@;oO@;O22OO*OOO:$i........   .. ..  .....  ....   .     .   .   . . .. . . .w..  ... .  .  .           .  .  w.w.p&8888&&&&&&&&8=8X.w w rrqrr<:::<<rrqa#qqw qr  arwq q q q  qw$   w   w w             w w w       w.   w w .w .  . .w.. ..w. ... ..w.......42;,@@@@@@,@@@@@@@;;2*2X2@@@@&8&@&@@@@@&&&&&&&&&&&,,,@pu.....u.......u..................u....",
+".......u..............uu.uq.qu.uu.uuquu.u.uqu........4.....uu.uu.u..u.u.uu.uu..u.4u.uuuuuu.u...u.u4..uiu4.4uu4uuu4uuu.u...4.4.4...4..i.....4.i..4.4.4i.4i42;;;O@,@@@@@@,;2*,,O*OOO*OOO1$............ ...  .. ...... .  ..    ... .   ..   .  .  ..  .   .  . .   . . ..w.  . .  .     ...*&&8&&&&&&&&&&8&w.w w#qarrr<<<<e<rrrrqa  a$wqwa q qwqwww#qaq wqwa  aq aa w w w w w w         w    w .  . w .w w. w .w.. .w.w.w.. ...w.....u2;,,@@@,,,,,@;2wwwiii4.iiw2&@&@&@@@@@@@&&&&&&&&&@;,&24...................u.u...u..........u.",
+".4u...4......u.........qqq.u..u.quuq.quququ..u...u..4u....u.quuqu....q....u.u.uu.u.u.uu.u.uu.u4.4u.uu4uu.4.4u.4.4u.4u.4u.4444444u4.4iu.4iu4.4....4..44.i44p;00O,,@@@@@;;O*OOOOOO***OO*$............q.qq  ..  ....   . ..     .   .  ..   .. . ... . . . . . .   .  . .w .     .    .w.  .*8&&&&888&&8&80..w wwqarrr<<<<<<<rraq #qwr aqwq a a qw qw r q  w  w qw a             w   w  w    aw   w ww.w . .w   ..w. .w..w. ..w.w.w.i..;;@@;,,;;@@@;wi.......i...X;&@&;@@@@@@@,&8&&&&&&&@@2i.......qu....u...u..........u..u...u...",
+"...4.............u..uq.u.u.quu.qu..quu.u.u......4........u.q....qq..u.uu.u...u.u..u.u.uu.uuuu4u..uuuuuuuu4uu4uu4..4u4..u44.4...4444.ui4.4..4.4.4i.4.i.i4i42;08O,@@@@@0@@,**OO***o*OO::i .......... .qqq .. .... . ..  . .    . .. ..  .... . ..  . . .  .. . . . ..   .. w. .  . ..   w wi0&&&&&&0&&00p4aaww rwrrr<<<:<<<rraq$wqw qwq q#a q qw aw a qaqa $wqww w  w w www w w   w q w  a w    w w  ww.  . .  w . ..i.X.wi.     ...i*;;@,@;22**22X....w...w..  .i@&2;&@@@@@@@@&&&&&&&@@;wu.....uq...............u..u........u..ui",
+".....u..u............qquq.uquuq.q.uququq.uq.u.u.......u....qu..uu.......u.u.u.uu.uuuuu.uu.uuuu.u.4.uuuuuuu.4.4uu44.u44.4.4444.4.4.4.4..4.4.4..4.4..4i4ii44;290,@@@@@@@@@;O*o**oOO2;*1.......  q   . .qqq q   .. .  .. . .    .  .  ..   .. . .. . . .w.  . . . .  ..    .w   .    w     ara;&;2aquqq-..ww arrarrr<<<<<:<rr$ra q# wa q#qa qwq q $a$r qr     wq a a     w      w   w  q   qwww    w  w.  . w  ..w...X w...X .  .   ..i*;;;;piu...u.   ...... ..  .2;u0;&,@@,@&&&&&&&&&&@24.....q......u...u...u.........wu....u.iu",
+"..4u...4..4.u.........u.uu.u u...uq.ququququ........q..u..u...uq.uquuuuu.u.u.u.uuu...uu.uuuquuuuuuuuuuuuuuu.uu.4u444.44uu...44444444444.i..44.i.4i4.4i4i4w00;;@@@@@@@@@@@2OOOpoOO;024......  qqqqqqqq.qqq  .  ..... . .    .. ..... . ..  ..  .... ... .  . . . .. .     .           qaa$r$666qqawaqaw wqr#rrrrr<<<:<<<<rraqw$wqa wr a  q qwa ar$a$raa aqaqq w$ qww w   qwqwq w w www a     w   q  w w. . .  ...w..i.X.       ..    4wpw..        .w.w .. .   .q.4a210@,,@@&&&&&&&&@@0X......q.qu.............u..u...up*iu.u.4..",
+"u...4u..............uu.quu.qu.u..quuqququuuqquqqqqqqqq..........u.uqu.u...u.u.uuu.u.uuquuu.uuuuuuuuuuuuuuuu.4u.u444.44.u.4.44.4.4.4.4i4.44.4..4..4.4i4i44208;;@@@@@@@@@@&;;2O2>>wppi......  qqq6qqq qqqqqq.  ....   . .    . . ..   . .. .......   ..... .. . . .w .     .         wqar$r<<<>>rrr$rr$rrrrrr$r<<<<<<<<<<r$rqr   qw rw a a a qqar$rr$a#$ q    wqqwqw    w w       w w  q  w       w    .  .w   .  .......   ..  .    .  ..            .... . .     .1::>;,@&&&&&&&@@@;@24.......q.......u...u............2wiu.4u..",
+"..u....u.u.u4.u.u.uuquq...qu.q..q.q.qqqq.ququqqqq-q-qqq..uu..4......u...u.uu..uuuu.uu.u.u.uu...uuuuuuuuuuuuuu.4u4u.4u.4u4444.44444444.44..4.4.4i..4.4i44i0;0O@@@@@@@@@@@@@&&;;1u.uu.... qq qq6$t6qqaqqqqqq .  ... .. . .... . ...... .  . ...... .. ..  .. . . . .               q  $r$r<<<<<<<>><<$rr$<$<<1<<<<<<<<<rrrrqa q qw a aw q a$ rq$r$<<rraqa waqaq q a a ww    www w    wa wq www. w  q w  w . . . ..  ..w         .          .      . . .  . . .     ..q u1;,@@@&@@@@;;@@p4..........u..u...........u.u.u.ui*w u4u4.",
+"...u.u............uu.uq.qq.uq.u.u. -qqqqqqqqqqq6$66666q ...u......u......u.u...uuuuuuuuuuuqu.u.uquuuuuuuuuuuuu.4u4uu4uu4.4.44i4.4.4.4.44.....4i4...4i444*@OO2@@;,@@@@@@@@@@&@&&;4..... .q qqa$$rr$$66q q- q . .. . . .    . .  .... . . . ....... .  .. .. . . . . .              aqr$<<<<<<<<<:<<<<<><<<<><<<<<:<<<rrr$rqaa#q   w wqwq$wq$q$arr>r<rqaqqw   qwq a w w w w w     w   w  w   ww  w q        .w. w..  ..     .          .   .       . . . . . .       ...w2;;,,@,@,,;;;;w.... ...................u.....u..42OXu.w..",
+"u.u....u..u.u.u.u....uqu.uq...qqq.uq-6--q6q-q66$$$>>>$-q..u.....u..uu.u.u..uu.u.uu.u.u.uuu.uu.uuuuuuuu.u.u.uu4u.uuu4u.4uu44.4.444444.4i44i4.4.4i.4i.4iiw;@2;90@@@@@@@@@@@@@@&@&;u.... .qqqq$$$r>$<$$6qqqqq    ... . .  .. .  . .....        .... . .   . . .  .  .               qqrr<><<<<><<><><<<<<<><<<::<:<<:<<r$rr$ra$arrqaqa wq  qrrrrrrr<<<$r qqq aa qwqwqw a w    w w w   wqwq q    w     q     w   .   .    .                              . . . .          .ap20;;2;;@;ww ......q.....u.u..............u..4u4*OOOO*u.",
+".. .uq. .............uuqqqu.qu.uuqq-6666$$$66>$>>>$>>>66-q.............u.u.u..uuuuuuuuuuu.uu.uuuuuuuuuuuu.uuuuuuuu4u4uuu44u4444.4.4..4i4.4.4.4..4i.iii42@;0000@@@@@@@@@@@@@&@&;i.... q qq6$>r<<>r>r6qqqqqq.. .    . . ..  . .. .....  . . ....  .. .  . .. . .. .. .            qar$<<<<<<<<><<<<<<<<<<<:<<::<<<:<<rrra$r$rr$rr r # wq aar$<$<r<<<<r$qqa  qw   w w q     w     q    w   w                   q    .   .  .            .  q       .. . . . . . .   ..... .qq.pwq.1*.q.. ....q uq.u...............u.uu.u.upOOOOOwqq",
+" uqqq qqqq...u...u..uqqq-q.qq...uqqq-6$>$6>>$>>>>>>>>>>$6q ...u.u...q.q.u.uu.u..uuu.u.u.uuu.uuu.uu.uuuuuuuuuuuuuuuuu.4.44.4.4.444.4.4.4.4...4.4...4i4i4*@;0;0@@@@&@@@;@@&&&@;2.u.... qq6$$>r><$<>r$6qq uq.  . .... . .  .. .  .... . .    . ....   . . ..  . . .  .            a r$<><<<<<<<<<<><<<<<<<:<<:<<<:<<<$rrr$r<<<<<raa a a awq$r<<<<<<<<<r$ a qa a awqw w wqwqw   wqw w a a a q w w                          .      .. .                   . . . . .     ..   qqqu1a....r q .......q...u..u......u........uu.2OOOO.6q-",
+"qqqqqqq6qqq ....q.q..uqqqqqqqq.q uq.qq6$>6>$>>>>>>>>>>6>$6q.......quqq.q........uquuuuuu.uuuquu.uuuuu.u.uu.uuuuuuuuuuu4..uu444.44.4.i4.4..i4.4.4.4.i4i4X@80;@@&@@@&@;0@0ppwXuu....  qq6$><r>r><><>$qq  q.q. .    . . ..  . ...  .. ...... ........ ...  ..... .w. ...           qr$<<<<<<<<<><<<<<<><<<<><<<<<<<rrr$a$r<<<<<<rrar w wq  $r<><<<<:<>rrq q  w w    w       w    q q      w q          a                   .      . ..   .q.    .    .. . . . . . . q .... qqq.a#u..u1a. ......u.................u.u.u....uwOOp-666",
+"qqqq666q66qqq..q..quq.qq6-qqqqqqqquqqqq6$>6>>>>>>>>>>>>>>>-q ...qqqqq6-q.q.qquq... uqu.uuu.u.uuuu.uuuuuuuuu..uu.uuuu.uu4.4.4.44.4444..4..4..4.4.i.i4ii4O@02@@@&&&&&@@&004uqu.....  qq$$>$<>><><><>$q qq .. . .... . .  ..      .... .    . .............  .. w . .w .    .     a$r><<<<<<<<<<<><><<<<<><<:<<<<<rrrarrr><<<<<<r$rqa w #aqa$r<<<<<:<<<rrrw qaqa awqwqwa a a w w w w a a w w a w          w. .          .           .           .     . . .     . .   .  .. . qup;*122 u.....q........u...u..u..u.....uwOoopOo-6$$6",
+"$666q66$6666qqqqq... qqq666666-6-qqqqqqq666>$>>>>>>>>>>>>$66qq qqqqq6$6qqq-q6qq-qqquq.uuu.uuuuuuuuuuu.u.uuuu.u.uuu.4uu4uu44444i44...i.444.4u....4.4iii4,802@@0@@@@&@;@&04......  qq6$$>>>>>>>><>>>r6q q qq . .    . . ..   ....... ...... .......... .    .   . . ..    .      qa$r<<<<<<<<<<<<<<<<<<<<<<<<r<rrrraqwqr$<<1<<rrraar w a  qa$r<<<<<<<<>rrqq  w w  w w w   w w w          w     q         . w   .    . . .   q .  ...       .     .... . . . q. . . . . .  ..q q.2;;9; .. ..q.......u..........uu.uu.u4*O29wpq6>6r6",
+"rrrrrr$r6t66qqqqq.qq.q q-$$>$$$66--6-qqqq-$$>>>>>>>>>>>>>>>>6qqq6-q66>$6--666666qqqqqququuu.q.uquuuu.uuuu...u.u.uuuuuuuu4.4...4.4.4i........4.4..iiii4X,80;@00@@@@@;4**a........ q6$$<<<<<<><>>><<>$qq    .  .   . . .  .  .      . ..   ..........   ..  . . . . .           w $r<><<<<<<<<<<<><<<<<><e<<<rrrrraa#ar$$r$rrrrrqa q wqwqw rarr<<<<<<<<<$ra q a a a a a a a a a w w w w  w   q  w          . .    .     w .     .                    . . .  .  . . . .q  ..   ..p;9;*uq q q.qq.............u.u..u..4400O;166$$6>$$",
+"6$6$6$6$$$r6666qqq.qqqq6$$>6>>>>>>$$6--qqq66>>>>>>>>>>>>>>>>>666$$6$$6>>666$6$>666-qqqququuu.u...q.u.u.u.u.u.uuuuuuuuuu44..u4..44.i4.i4..4i4...4..4.i4w;*0;@00&&;@@;p14........ qq$$>$>>>><><><>><$$qq  .q   ..  . . .. .. ...... ................ ..  .  .. . . . ...         qqr<<<<<<<<<<<<<<<<<<<<<<e<<<rrrar a rqrrrq$arrqraw  w wq aqar$rr<<<<<<<rqwa   w  wqw        w      w      w            .w              w.           .  .        .. . . . . . . . . . .  .    .w2;O1.q qqqqqqq...............u..44r0;,2q6$$>>$6$t",
+"$6>6>6>6>6>$>6$66-qqq 6$$>><>$>>>>>>>>$6666$$>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>6>>66-q qquq.uuquuu.uu.uuuu.u.uuu4.uuuuuu.uu...u...44....i.....4...i.ii422p0,@;0@0;@@@22u........qq$$><<<<<<><><><>><$6q q            .  .  .    .......    .....  ..   .   .    .  . .          wqr><<<<<<<<<<<<<<><<<><<<<<<<rr aaqwqwa aqaqqwq   wa a w  a arrrrr<<<<<rrqwqa qwqw w aa a a qw w w    w w  q       .    .                            .           . .   .    . . .   q .   . . . p..qqqq66qqqqq.u......u...u.u.4#10,O*p6$$6$6>>>$",
+"6r$>$>$>6$>6$>>>$$6qqq6>>>>>>>>>>>>>>>>66>$>>>>>$>>>>>>>>>>>>>>>>>>>>>>>6>$6>6>>6>>$66qqqqquu.uuquuu.u.u.u.uu.uuu.uuuuuu..u.u...u......4..i.4..i4..ii.*X0;@@@@@;@;12wu........qqq$><>>>>>><><><>>>><6qq .    .  .  .. .. .. ....  ....... .       ..  . .. .   . .. .   ..     qa$><<<<<<<<<<<<<><<><<<<<<<<r$aar #a q aq q q qwawq w w a    aqa$rrrr<<rra$a  w w   wqw     w        w          q           .   ..         .     . .   ...  ..  .. . . .   . . . . . .   . q .  uq  q6$>$6q.q.......u........4*0;O,*66$>6>>$>6$6",
+"$>>6>6>6>>6>>>>>>6$$6$>>><>><>>>>>>>>>>>>>>>>>>$>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>6>>>6>66-qqququuuuu.u.uu.uuuu.u.uuuuuuuuu.u....u...........4....u.....i**0;@@0&@@@;0$4.......q q66$><><<<<><><><><><>$qqqq             . .  .     .  .     . ..    .              .  .         q r$<<<<<<<<<<<<<><<<<<><<><<<<rqwqwa aw$w w a awq  w a a  wwq qa rqrr<<rrrrqw  qwq w q   a a q w w w w  w   a  a wq                      .           .  .        . .    .   . . .   q  q.  q....    qq6$>>$qqq.qu.......u.u.uu*;OO,;r6$>>>$>>6>>>",
+"6>>>$>>>$>>$>>>>>>6>$6>>>>>>><><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>6>>>6>>>>>$66qqq.q.uuuuu.u.u.uu4.u.u.u.uuuuuuu.u.u.u...................4.42220;@0@@@0;;.u.......qqq$$>><>$>>>>><>><><><<>$qq     .       . . . ....  .. ..... .    .    ..    ..    . . ..    .  a$qrr<><<<<<<><<<<<<><<><<<<<><<rrq   w   $ q q qw w  w w a qw w  aqarrr><<<<raaw     w w     w            w   a  q qq                . . .          .    .      . . .... . . . . .    .   ..  ...  qq q6>>>>6qqqquu..u........w;OO2;16>6>6$6>>$6$>",
+">$>$>$>$>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$>>>>>>>>>6>>>>>>>>>>>>>>>>>6>>>6>>>6>6>>>6$6qqqq.qu...uu.u.u.u.u..uuuuuuuu.......qq-qq ..i.i....i....4w2w0;;;;;;@;iu.... qq qq6$6$$>$<<<<<><><>><><><>$qqq . . .      . ....    ..  .    .                        . .   .     qa$r><<<<<<<<<<<<<<<<<<<<<><:<<<<$aqw a rw #w#awa a a qwqw w wq w   qarrr<r<rr$ aqw w     w w  w w w w w w   a  qwqwq                 .                           . .   .   . . . .   q q q ..q   .  qq6>><>>>66qqqq.........q...121<6>6>>>>>$>>>>>",
+">>$>>>$>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>6>>>>>6>$>6-qq.-..u.uu.u.u..u.4u.uuuuuuuu..u.u...q6qqq....u...u......;;002;;@@0@a44....qqqqq66$$<><<$>>>>>><>><<<><<>$$q .. . .    ... .... ....  .. .... .       .... .        . . .        qar<<<><<<<<<<<<<<<<<><<><<<<<<<<r$w qw w  a a    w w  w w a a    wqr qrrrr$raqa       w w                     wqq                       .       .    . .q.q q   .. . ... . . . . .          q.qqqqqqq6$>>>>>>>6qqqqqu....qqqqqq-pr66$6>$>>>>>>>>>>",
+">>>>$>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>6>6>>66>6>6>>>6>$666qq.q.uu.u.u.uu.uuu.u.uuuuuu..u4..uqq666qqq ....q..  qup*280;0;;@00011. qqqq6$$$<>>r$<$<<<<<><>><>><<><<>$q   .  ...  .  ..... .   ..  .    .      . .   w         .   .   .   aar$<<><<<<<<<<<<<<<<><<<<<><:<<<<$ra w  a a w wawa a a  a a w wa a a q#qaarawq# w w w w    w www w w w       qaq q q                                                          . . . .       q  q qqqq6>>><><>>>>>qqq.q...qqqqqqq6->>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>>6>>>>>6>>>>>>>>>6>6>>6>>>>6>>>>>>$6qqqq...uu..u..u.4u.uuuuuuuu.u..u..uq-6666qqqq qqqqqqqquX07;2,;,@@@9::.qqq6$$>>>>r$<>r>>>$><><><><>><<><>$qq . ..  .. ..    ... ..  .. ..... .     . .             ..         qr$<><<<<<<<<<<<<<<<<<<<><<><<><><<<rra$w w w a    w w wa  w w   w w w  w wq w  qwq       w    w                q q                                             q q q      q q  q q q.         qqqqq6$$>>>>>>><>>>>>6qqq q.qq-6q6q6>$6>6>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>6>>>>6>>>6>>>6>6>>>$66-qqq.u4.u.4u.u.4uuuuuu.u..4u...u.qq666$66q-qq6qqq66-X,0800,,;@0@;1rqq6$$6><><$><>r><r<<r>r><><><>>><>r$qq. .. .   .  ... ....  ..  .      .           .                  qaa6r<<<>e<><<<<<<<><<<<><<><<<<<:<><<<rrarqa a   w a a a w  wqwqwa a a a  qw q aw w w w wa  w w  ww w w w               .                                                  q q q           .   qq6$$$>>>><><><>>>>>>>>$q-qqqqqq6-6$$6>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>6>6>>>6>>6>6>>>6>>>6>>>>>6>>>6qq ...u..u..4uu.u.uuuu..u.4.4.u..qq6$6$$$6-666q6$66p;;80,;,;0@@*-6$$$$$>r$$>$<>r><r<>$>r><>><>r><<<<<6$q q . . ... ..  ..... ..  .. .... .      . .   .  . .           qaa$r<<<<<<><<<<<<><<<<><<><<<<><:<<<<<<r<rrrra wa  a w  w a  qw  w  w w w aww ww  a      q w a   w a q                     qqq   qqq                    q                   q q q q       q qqqq6$$<><><><>>>>>><><><>>>$6qqqqqqqr6>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>><><>>>>>>>>>>>>>>>>>>>>6>>6>>>>6>>>6>>>6>>>>>6>$6qq ..uu..u.u4.u4uuuuuuu.......4..qq66$6$$6$$66$r$6r;;70;@@;0@;t>$><<>>r>><$>>r>r><$<r<>r><<><><><><>$$q q  . .   . . . .   .  ..  .                 . ..            qqa$r$<<<><<><<<<<<<<><<><<><<><:<:<e::<<<<><<rr$rraa w q  a   aw awqwa a a  w qwq a w w w ww w w w w w w      a a           q  qqqq                    .                       q q qqqqq    qqqq$<<>><<>>>e>>><><e>e>>>>>>>>6qqqqqqr6>6>>>>>>>>>>>>>>>>>>",
+">>>>>>>>6>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>>>>>><>>>>>>6>>>6>>>>>>>>6>>6-q..uu.u4.uu..u.uu.u.uu.u..u..u..q66$$>$>>>>>>>>$6*080,;;;@1r$>>$>>$>>>$>>$>>$<$<<$<$<><$>>><$<<<><$raq   . ... . . . ... ..  .. ...     ..    ..     . .           $ar$r><><<><><<><<<<<><<<><<><<<<<:<<:<:e<<<<<<<<rrrqq aqw  w w w                  a        w      w w           a    q qqqqaaaaqqqqqqqqqqqq q q     q    qqqqqqqq q q q q q q     q q qqqq qqq$r>><<>><<e>>>>>>><><e>>>>>>>>$-q-qqq6>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><><>>>>>><>>>>>>><><>>>>>>>>>>>>6>6>>>>6>>>6>>6>>6>>>>>>>>>>>>>>>>$>6-qq..u.uu.4uuuuuuu.u..u.u......uq6666$>$>6>$>>6>6*00;,,;006>>$$>><>>$>1r1<$<>><>$<$<<<><<<>><<<><><$taq   . .  . ..     .  ..  .     .         .            .   wqqq$r><<<<><<:<:<<<<<e<e<e<e>:<<>e<:<::<:<:<<<:<<<<$rrrrar#qaqwqa w awawaw w w awawaw#qwaw w  wwww w w w w    a  a   qaqaar$rr$$$$rr6rt$$$$$r6$6r6qqqqaaqqqqqqqqqqqqqqqqqqqqqqq qqqqq qaq q qqq6$>>><><><>>e<>>>>>>>e><>><>>>>>$6q-q-6$6>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>6>>>6>>>>>>>>>>>>6>6>>6>6>666qqu.uuuu.uuuuu.4.u4uu.u.u4...u.qq666>>>$>>>>>$>>a20&,;@@01->>>>$>>>>r222<$>$$<$<$<><><<>><>><><><<r$r6a    .   .   ..... .. . . .  .         ..  .       ..  qqqaar$<<<<<><<<>:<><><<><e><e>:<><<<<e<:<:::<e:::::<<<<rrr$r$rrwqa  wqw          w       w    w wpp#           w   w aaa$trr<<<<<<<<<>r>><>><><$<<>r>><rr$rr$r$rtr$r$$$$$$r$$$r66q6qqqqaq6$6$$6$>>>><e><><e>e<>>>>>>>>>>e><>>>>>>66qqqq66>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>>>>>>>>>>>>>>>>6-qquuuu..u.uu..u.uu..u.4....u..qq-6$>$>>6>>6>6>6rw;0;;;;;2>6>$>><>>$<<r$>r><><>$<>r>><><<>><><<<>><<$rqqa     . ...     .  . . ..   .        .   .           qaa$$<><<<<><<<><:e<e<e<:e<<:>:<<<<><<<:<:<:<e<:<:<:<:<<<<<<rrrrrrqr qw awaw w w wqwawawqwqw   q  www   w w w w  qwaqar$rrr<<<<<<<<><><><><><><><><>><>><>e><<><<$><><><<<<><<<><>>$>>>>>>$><<><>>><<e<><><><>>>>>>>>>>>><>e>>e>>>66q-qqq$>6<>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>6>>>>>>>>>>>6>>6>>>>>>>>>6>>>6>>66-qq..u.u.u.uuuu.u.u4.u.uu...u.uqq-$6$>6>>>>>$6>6r200;2;@@p->>$>$<>>>>>><><>$<r><><>>><>>>>>>>><><<>$$r$qqqq   .  ....   .    .  .            ..     . . .q qa$r$<><<e>e<<><<<e<e>e<e<>e<<<<:<<><<>:<:<:<:<:<e<:<:::<<<<<<<<<r$r$$ q    a q q q  q  w # a   qa  wqw        aw qqrarrr<<<<<<<<<e>e>e>e>e>e>e>e>e><e<<e<e<<><<>e<<<><<><>:e:><<><<>>><><<<><e<>>e>>>>>e<e<e>e>>>>>>>>>e>ee>e>e>>>>6qq-q-6>><>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>>>>>6>>>>>>6>>66-qu.uu4uu.u.uuu.u..u.u.u.u.....qq-66$66>$>6>>$>6a;0;22;@0116>>$><>>$>>r><>>$<>><><<>>>><><><><>>><<>$>$r$qqq             q q             .            qqaqa$r$<><<><e<><<<><<:<:<<><:<:e><<:<<><<<:<::::<::<e::<:<::<<::<<<<rrrr$wq#a w # # w w q a q w     qq w a w   aq qaqar$r<><<<<<<<:<:<><><><e<e<><><><e<e>e>e>e:ee><>><>>><>><>><>>:<e:eee><>e<e<eee>ee<e<>e<e<>>e>>>>>>e>>><>>e>>>>>>-q-qq6>>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>6>>>>>>>>>6>>>>66>6>>>>6666-qu.uu4u.u.u.u.uu.u4u.4.4.u.u..q-$6-66>>$>6>$>>6a*2;;;;001<>>>>>>>$<>>$>r>>$>>>>>>>><>>>>>>>><<><><<>$r6qaqqq qaqqaqaaqqqqq qq q          .        aqaq$$<$<><<><>e<<<><<><<e<><<<><<<<<<<><<e<:<::<:<::<:<:<:<::<::<:::<<<rr$aqwqqr qqq q  $ qwq qwwq aqa wqqqq q aqqqqa$arr<<<<><<><<<<e:<e>:>:e:<e>eee<ee><><><e<e>><>>e>e>ee>e<>>>>><>>:><>e>e:<:<e:>:<e<>e>>>>>>e>>>e>>>>>>>e>>>e<<>>>>6qqq-6>>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>6>>>>>>>>6>>>>>>>>>>>>6>6>66-6qqu.u..uuuuu.u..u4..u.4......q.qq-6666$6>>6>6>>>6aa;;21rrr$r>$>>>>>$<><>$r><><><>><>><><><><>><><>><$><<$$6aqqqqaqqa6q6qq6qqqqqqqqqq     qqq qaqaqq$$$>r<<<<><<<<:<<><<><<>:<<<><<<<><><<<<e<<::<::<:<::::<:::<:::<::<:::<<rrrrqra qw w # qwq $ a wq #q  q qw$a raq aar$r><><:<<<<>:<<<:<:><<<<e><e<e><e>e><e<e<e<:>>eee<<><e>><>>e<eeeeee<ee>:>e>e>>>e>e>e>e>>e>e>e><e<>>>>>e>e>>>e>>>>>>>6-q-66>>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>6>6>>6>6>>>>>>>>66-qq..uu.u.u.uu4..uu..u.u4.u....uqqq66666$>>>>>>>>>>66<>>6><$><>>>$>>$>>>>>><>>>><>>>>>>>>>><><><><><<>><>>$$$$$r$rr$r$r>$$$rr$$$6qqq6qqqqaqaaq6q$rrr>r<><<<<<<><><<><><<<<<<><<<<<><<<<><:<<<:<<:<::<:<:<::<:<:<::::<:<:<:<<<rrr$r$q$q$qqwqr q q rq#qq aq q$q$aara$a$r$<><<::<:<::<::><e<eee>e><<<e<ee<e<><><><><><<<e<e:e<><<<e<<><><>>>e>>>>>>e>e>e>e>e>>>:>>>>>>>e>>e>e>e>>>>>ee<eee>>>>6qqq6>>>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>6>>>>>>>>>>>>6>6>6>6>>666-q..uuuuuuuu.u.4uu.u.4....uq.qqqqqq6$66>6>6>>>$>>>>>>>>>$>$>>$>>$>>>>>>>$><><>>><>><><><>><><><><>><<><<<<<<<$<><<<<>r<<<><<r>r$>$$r$$r$>$$$$$rr$<<<<<<<<><<<<<><<<<<<<<<<<<><<<<<><<<<<<e<:<:<::<:::::<::<::::<:::::<::<<<<>rr$rrrawr q  $ a#aaa$awr a$q$$r$rr$r<<><<<<<<:e<e<e:<:<><:><e<<ee<<>e<>e<e<e<e<e<>e:e><><<:>e>e><ee<><><<<<e>e>e>>:>:e>:>:>e>>>e>e>e:<e><>>>><e<e<>>e>e>>>>>$66q66>6>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>6>>6>>>>>>>>>>>$66-qquuuuuuuuu.uuu..4u..u.uq q-q--6666$$$>>>>>>>>>>>>>>>$>$>r>><<<>r>$>><><$><>><>><>>><><<><><><><<<><<<><>>>>><<<><>>>>><><><><>><>>><><<<<<<<><><><<<<<<<<<<<<<<><<<<<<<<><<<<><<<>:<:<<:<:<::<::<:<::<:::<:::<:<:<::<:e:<:<><r$r$r$qrqrq$$qrr$rr$qra$$rrr<$<<><<<<e:ee::::<::<:::::<e<e<>e<><e<>e<:<:<<><><e<><<:e><><e<e<e<<ee<e<><><>>e>e>e>e>>e>e>e>ee>e>>e>><<>>e>ee>>>>ee>e<e>>>>>$6-666>>>>>6>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>>>>>>>>>>>>>>>6>6>6>6$66-qqquuqqquu.uuuu.uu..u..qqq-666$6$>>>>>6>6>>>>>>>>>>>>>$><>>$<>>>>>>><>>>><>><>><>><><<>><><<<e<><<<>e><><<<<<<<><<><<<><><<><>><<$<<><><>><><>r<<><<<<><><<<><<<<<<><<<><<<<<<:<:<:<<<<:<:<:<<::<::::<::<::::::<:::<::<:<:<:<<<<<r$rr$r$rrrrr$rr$trr$r6<<<><<<<<<:e<:<:<e<e:<<e:<:<:>:<:<:<e<:<>e<e<e<>e<><e<ee:e<<:>:<:e<:<:<e<e<e<e:e:e>:>e>e>ee>e>e>:>>e>>e>>e<e>><>e><e<e>>e>e>>><>>>$666$$6>6>>6>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>6>>6>>>>>>6>>>>6>>>>>>>>>>>>>666---qqq.qqququuu...u..uqqq666$>>>6$6>>>>>>>$>>>>>>>>>$>>>$><>>>$<><><>><>><<>><>>>><>><<><><><><><><<><<<><><><><><>>><><><><e<<><<><<<<><<><><><><><<<<<<<<<<<><<<<<<<<<<><<><<><<<<:<<:<::<::<<:<:<::<:::<::::::<::<::<:::<:::<:<<<>r$r$rrr<<<>rrr$rr<><<::<<:e:<:::e::::::::<:::::<<<<<<:<e>e<e<<<:<:<>:<:>:<e<>e<><>e<e>e<:<<ee<e<<<e<<e<e<e<>e<e<e<e<e<>>ee<e<>e>e<>><>>e>><>>>ee>>>>>>>$6666>666>6>6>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>>>>>>>>>>>>>>6>6>6>6>6>6>6>6666-qqqqqqqqquuu.u... q6$>>>6>$>>>>>>>>6>>>>>>>>>>>>>$><>$<$<>><$<><>><>>><>>><><<<<>><><><><><><><<><><><<<<<<<><<><><><><<<><<><<><><><<><<<><<<><><<<<<<><<<<<<<<<><<<><<><<<:<:<:e<e:<:<e<e<:<:<:::<:::::<:::<::<::<:<::<::<:<<<<<<e<<><<<<<<<<<><<<e<<:<<::e::::::::::::e:<:e<:<<<:<e><e>e<e:>e<e<<<e<e>:e<<:<:e<e>:<:>e<>e<e<e<:ee><e<e<e:<e<e<e<e<e:e>>e<e<>>>e<e>e>>e>e>e<>e>>>>>>>>>>$6666666>>6>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>6>>6>>>>>>>>>>>>>>>>6>6$6-66-q-qqqu.u.uuuqq66>>>>>>>>>>6>>>>>>>>>>>>>>>>>>>>$>>>>>>$><><<>>>><>>>><>>r<<><<><><><><><><<><><<<<><><>><><><><><><>><<><<><><<<<><<><<<><><<<<<<<<<<<<><<<<><><<:><<><:<<<:<<<:<:<::<:<<<<:<:<:::::<::::::<::<::::::::::<:::::<::e:::::<:<::e:e<:::::::<:e<e::::e:::::::<:e::ee>e<e<e<e<e<:<:<:e<:>:ee<:<ee<e>:<e<e>e:<:e<e<e<><:<e<e:<><e<e<e<e<e><e>:><><<<e><><<>>>e<>>>>eee>>>>>6>>$66$666>>>>>>6>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>>>>>>>>6>6>6>6>6>6>6>>>$>6>$666-qqqqq..qqq6$$>>>>>>>>>>>>>6>>>>>>>>>>>>>>>>>>>>$>><:>>>>><><>>><><>>>>><<><><><><><><<>><><><><<<<><><><><><><><><><<>><<<><><<<><<><<<<><<<<<<<<<<<<<<<<:<<<:<:::::<e:<:<::<::::<:<e:::<:::<:::<::<::::::<:<::<::<:::::<:<:<e:::::::e<:::<:::::::::::::::::::::::::::e<:<:><e<e<:>:>:<:<e<e><:ee<e<e<e<ee<<e>:e<e><e<ee<e>:<e<e<e<ee<e:e>ee>e>e<e>e><e<>>><>e>e>>>>e>>>>e>>e>>>>>>>>>>6666$666>6>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>6>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>6>>>>66-qqqqq-q6$>>>>>6>>>>>>>>>>>>>>>>>>>>>>>>>>><><1:>>>>><e>>>><>>>><>>><>><><><><><><>><<><<><><><>><><><><><><><><><><<<><><><><><><<<<><<><<><><<<<<<<:<<:<:<<:<:<<e::::::::::::::::::::::::::::::::::::<::::<:::<:<:<::::::::::::<<:::::e:e::::::::::::e::::e:::::::::e<e<e<e<::<e<e><e<e<e<e><e<e<<e<e<<e<e<e<e>e<e<<:>:<><><<><e<<e<><<><<><e<e<><><e<<><<><>>>>e>e>>>>>>>>>e>>>>>>>666-666666>6>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>6>>>>>>>$>>6>>>>>>$6-q6666>6>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>66::0:111>><>><><>><<>><>><><><><><><<>><>><<<><<><><><><><><><><><<<<><<><<<><<<<<<><><><<><<<<<<::<<:<:<:<<:<<:<:::::::::::::::::::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::e::::eee:eeee:eeee::::<::<e>e<e:<::<:<<e<e<e<e<:<e>e>e:<e<e<e<>:<e<e<e>e<e><e<e<e><e<e<e>e<e<e>e<e<:>:<<e<>>e>e><>>>e>>>>>>>>>>>ee>>>>>>>66-qq-666$$>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>>>6>>>6>>>>>>>>>>>>>>>6$>6$>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$:<:$777700<>>>>><>>>>>><><><>><><><><><><>><><<>><><><><><><><><><><><<><><<$<><><><><<><<<<><><<e<:<:<<<:<:<:<:::::::::::::::::::::e:e:e::::::::e:e::::e::::::<:<::<::<:<:::::::::::::::::::::::::eee:eee::::e:::e:::::::::e<e:<<<<<:e<e<>e<<><<<<<<<<e<e<<><<><<><><<><<>e<e><<<>e<e<:<:>6><<<<<><<><><><><><><><<><e<e>>>>>>>>><><>>>>>>>>>$66q-qqq666>>",
+">>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>>>>>>>>>><>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>6>>6>>>>>>>>6>>>>>>>>>6>>>>6>>6>6>>>>>>>>>>>>>>>>>>>>>>>>>>>$>$>$$10777:1<<1<>>>>><>>>>>>>><><><><>e><><><><<><>><><><<><><><><><><><><><<<<><<<r><<<><<><r><<<<<<><<<<<<::<e<e<:<:<::<::::::::::::e:e::::::::::e:e:::::::::e:e::::::::<<<<::<::::::::::::::::ee:e:ee:::e:e:ee:ee:e:::e::::::e::<ee>:<:e<:<>><<:<<<<<<<<<<<<<<e<><><<<><<e>e<<><<<><<><<<><>::r<><<>e<e<:::::>:<><><>e>e>>>>>>>>>>>>>>>>>>>>>>>>>>666q-qqq6$6",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>>>>>>>>>>>>>>>e>>>>>>>>>>>>>>>>>>>>>>>>6>>>>>>6>>6>>>>>>>>>>>>>>>6>>>>>>>>>>>>>>>>6>>>$>>$>$>$>-:5%7:::e>>>e<><>>>>>>>><>><><><><><e<><<>e><><><><><><<e<><><><><><><><><><<><><<>r><><<<><<><><:<<<:<:<:::<:<:::<::::::::::::::e::::e:::e:::e:::ee:e:e:::::::e:e<:<$<<<1<<$><::::::::e:::e:::e:ee:e:e:ee:e:ee:e::e:e::e::><<:<:<<<<$><<<<01-::-6-6$6><<<-6>:::::><<<<<>r<>$666-6<><<-----u0%1--6$<$<><::1e::::::<>><<><>e>e><>e>e>><>e<><>>>>>>>>>$66$66$>>",
+">>>>>>>>>>>>>>>>>>>>>>>e>>>>>>>>>>>>>>>>>>>>>e>>>>e>>>>>>>>e>e>ee>ee>>ee><><>>>>>e>e>e>e>>>e>>>>>>>>>>>>6>>>>>>>>>>>>>>6>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$>>66-$:55887::e>e<e<ee><>>>>><>><>><><><><><><<><<e><><><e<e<e<<e<><><><><><><<<><<><><>><<<<<<><<<<<<e<<:<<<<:<::::<::::::::::::::<:::::::e:::e::e:e:::e::e::ee:e::e:::<<r175%%%%%71r><<::::e:<e::ee::e:ee:e:e:e::e::e:e::><<:>617$6666-><<11>>q<055%55770:116$1755%%77:::--6$>$-11::170-qqr:707777%777::::>--q-6tr<<e:::::e>>><>>>e>>>e>>>>>>>>><>>>>>>>>>>>>>6>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ee>e>>>>e>>>e>>>>ee>>>>ee>e>e>e>>ee>>>>>>>6>><>>>>>>>>6>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6>$>$>$$::17+=7::::::<<:e:<:<e<><>>><><>>><><><>e>e<><e>><>e>e><<><><><><><<><><>><><><<><<<><r<<<<<<<><<<<<>:<:<<<:<:e<:::<:::::::::::::::<::::::::e:::::::ee::e:e::::<<<><<$:015y+yy+y++3701<<<<>>>>><<<::::e:e::eee:ee:e::e:::700077%+5707755%%%5%%7%+y+++++++++%55%yyy+++3%577755%553%%++++5777yy++y++y+yy+3%%55777:<$--6e::::::::>>e<><>>>>>e>><<<>>><>>><>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>e>>>e>>>ee<><eee><eee>ee>e>e>ee>>>>>>>>>>>>6>>>>>6>>>>>>>>>>>>>>>e>e>e>>>>>>>>>>><>>>>>>>>$>$>>>66:717+%1:::::::eee>ee<e<>>>>>><>e<<><><><><<<>e<><>e<<<<<><e<><<><<<><<><e<e><><<><><><<<><<<><><<><::<<:<<<:<::<::<:::<:::::<::<::<::::::::e:::ee:<:e<:<::e::<>111007%05++%+yy++yy+++y%%%557777770:1:1::e:::::ee::<::1:7%%+++3+++yyyyyyyyy+yyy++++y+++y+++yyy++++yyyyyy+y++++yy+y++yyy++yy+yyyy+y+yyy++y+yy+y+++3%577:$--q6$r-><><>>>>>>>>>><>>>><>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>e>e>>e<>>eee<><ee>e>ee>ee>e>e>>ee>e>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>>>>>>>>>>><>>>>>>$>6>6>---6rqu03%0::::::::e<:e<e<>e>e<>><<>:e<<e>e>e>e<<>e<e<>>e>e><><e<:<<><><><><<><><<><r<r><<<<<<<<<<<<:<<:::<::<<<<:::<::<:<::::<:<<:<<:::<:::::::e:1:<<11<:<::1e<<07%++++yy++y+y++yyyyy+yy+y++yyy+yy+++++3+7<::e:e:e:e<7%%+++yyy++++++y+yyyy++++y+++yy++++yyyy+yy++++yyyyyy++y+++++++++++++++++yy+yyy+yy+y+++++++++++yy++y3%57:::$:<--q-66><><e>>>>>><<>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>>>>e<ee<eee>e>>e<eee>eeee>e>>ee>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>>>>>>>>>>>>>>>>>>-6$>-:77:-:$0++3%%:::::::::<e:<:<:e><e<><><><><><<<><e<><<<><><><<<><<<>e<><<e><>><><><r<><><<><<<<<><<<><<:e<e<:<<<<<<<<<<<<<<<<<<<<<<<<<<<::<<<:<<<<<<<>0%371<<1<q05+yyyy+yyyyyyyyyyyyyyyyy+yyyyyyyyyyyyyy+y30:e:ee><:1:73y+yyyyyyyyyyyyyyyyyyyyyyy++yyy+++yyy+++++yyyyy++++yyyyy+++yy++++++++++yyyyyyy++yyyyy+++++++++++++y+++++3%%+5777771$--66<><><>>>>>>>>>>>>>>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>e<e>ee:e<e>e>eeeee<e:<e>ee>eee<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>e>>>>>>>>>>>>>>>>$::66::%35::%%+++33%7:e<e::e::<e<e<:<<e><e<>e><<<>e>e><:<e<e<e<e<e<>e>e>e<><<<><><<<<><<><r<$$r<<<<r><<<><:<<:<:<<<><<$tr<t$<<<r66r1r<<rr666r$r$66r<<1101753+y+375717%yy++yyyyyyyyyyyyyyyyyyy++yyyyyyyyyyyyy++35::::1777%%+y+++yyyyyyyyyyyyyyyyyyyyyyy++yyyyyyyyy+++yyyyyyyyyyyyyyyyy++++++++++++++yyyy+++yyyyyy+y+3+++yy+++++++++++++yy++++++%%571<-------6$>>>>>>>>>6>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>>><>eee>ee:eee>e>e<:ee>e>e:>ee><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>e>e>>>e>>e>>>>>>>>>>>>>$>11$-q1753%05++++33+57:e::e:<e:>:<:<ee<<><>:<<<><<><<<:><<<<><<<><><<<><<>e>e><><><<><<<<<6->1<-<<6<:$$611><<>1rr11111080570110557785%%5577010100755%%+++yyyyyyyy++3yy+yy++yyyyyyyyyyyyyyyyyyy+yyyyyyyyyyyyyy%%5::::5+yyyyyyy++++yyyyyyyyyyyyyyy++++yy++yyyyyyyyy+++yyyyy+yyyyyyy++yy++++++++++++++++yy++yyyyyyy+y+333++++++++yyyyyy++++y++++yy+++%%5757777:u--6>$>>$>$>>>>><",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>e>e><e>e:ee<e<e>e>ee:eeee<e:e>ee>e<e>>><>>>>>>>>>------>->>>>>>>ee><<>>><>>>>>>>>>>>6<:<:::177%%+513+++3333%7:>:::::::>e<:<<>eee<e>e<<><:<:e<:><:<:ee:<:<e<e<ee<<<><<<<<><<>r6-q17%%%1qr157111001<q1558%%3+3y+yyyy%%++yyyyy+yy+y+y+++yy++y+yyyyy+yy+++yyyyy++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy%7::7%+y++y++yyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyyyyyyy+yyyyyyyyyyyyyyyyy++++++++yyyy++++yy++yyyyyyy+++33333++++++yyyyyy++yyyyy+++y++yyyy+yyy++%771:$>6>>$6>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>e<e<>:>e<e>e>e<ee<e<e>>>e><><>><>>>><><>>>>6q170:00:01<><>>>>>>>>><>><>>>>>>>>-->$a17%577%%++%17++++++%%7:<:<:::>:::ee>e:><>:<e>e><<<e<<e<<<<<e<<>e<e<e<e<<e<><<<<<$6-q-$:017++++%50%y=%33%%%57%3y++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+y++yyy+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy57:773+yy+yyyyyyyyyyyyy++yyyyyyyyyyyyyyyy+y++yyyyyyyyy+yyyyyyyyyyyyyyyyy++++++++yyyy++++++yyyyyyyyy++++3++3++++++++++++++yyyyyyyyyyyyyyyy+y++++++376>>>>>>>>>>>>",
+">>>>>>>>>>>>><><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>><>><>e><>e><>->>>>>>>><>e>e>e<e<e>e><>-$><<>>$<$6::1108855701-----$:6>:>->-6>>$><$--:016$<1<17777501$0+++++++%5::::::e:::<:<:<:<ee<e<:>:<e:<:<<<<<>e<>e<<<><<><ee<<<<<<<q$1::75%3%+++++++++++yy+yy+yyyyyyyyyyyy+yyyyyyyyyyyyyyyyyyyyyyyyyyyyy+y+++y++y++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy%%%++++yy+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++++yyyyyyyyyyyyy++3+++++++++yyyyyyyyyyyyyyyyyyyyyy+++++++y816$>$>>>>>>>>>",
+">>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>6-6-17:>$-6>>>$---->----6-6--:7:$-------u187777%3%%%757775775%%7777:$>>-u-:7771$:57177:::075%++++++++%77:::::::::::e:e::>:<::<:<e<<::<<::::<<<<><<<<<<<<<><>$<$-17%3++++++y+++++++y++++y++yyyyyyy+y+y+y++yyyyyyyyyyyyyyyyyyyyyyyyy++yy+y+y+y++y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+++yyyyy+yyyyyyyyyyy++yyyyyyyyyyyyyyyyyyyyy+yyyyyyy++yyyyyyyyyyyyyyyyyyyyyyyyyy++++yy++++++++yyyyyyyyy+3+y++++++++yyyyyyyyyyyyyyyyy+yyyyyyy3%8%016><>>>$>>>>>>>",
+">>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6----666>-::::08%%%705%5577:::7::7:::::5+%57:77770000%%%%++++yyyy+++yyyyyy+++3%%%5773+55%575%%%33+++++y++++++3351<::::e::::::::::e:::e:e::<::<:e:<<e<:<:<:<<<<<<<<<<$<:q17%++++++++++++++++++++++yyyyyyyyy+yyy+yyy+yyyyyyyyyyyyyyyyyyyyyyyyy++y+y+y+y+y++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+++yyyyyyyyyyyyyyy+++++y+yy++yyyyyyyyyyyyyyyyyy++yyy%801t1a<$>>$>>>$>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$6----u--$<:0701:77:%++++3+++y+++++y++++++++++++++++++y+yyy+++++++++++++++++++++++++++++yyyy++++yyyyy++++y+++++3++++333%%0-$<><:::::::::::::e::::<e:e<e:<:<:<<<<<<<<<<<<<<<$-$7%%585+3+++++++y+++++++++++++++yyyyyy+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+y+y+y+y++y++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyy+yyyyyyyyyyyyyyyyyyy++yyyyyyyyyyy+++yyyyyyyyyyyyyyyyyyyyy++yyyyyyyyyyyyyyyyyyyyy+yyyyyyyyy++++yyyy++++++++yy++yyyyy+yy+3%801q6$>6>$>>$>>>$>>>>>>>",
+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>6$6-66$--><:::175%5%++++++333++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++333%%%57::>>>>ee::::::::::::::::::<::e:<:<:e<<<<<<<<$$r::0557%3%3+++++++++++++++++++++++y+y+yyyy+yyyyyyy+yyyyyyy+yyyyyyyyyyyyyyyyyyyy+y+y+y++y+y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+++yyyyyyyyyyyyyyyyyyyyy++yyyyyyyyyyyyyyyyyyyyy+yyyyyyyyy++++yyyyyy++yyyyy+++yyyyyyyyy%16u->><>>>>>>>>$>>>>>>>>>",
+">>>>>>>$>>>>>>>>>>>>>>>>>>>>>>>>$>>>>6-<::::775%%+++++yyyy++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3333%%%%%%%%555777::::>><e::::::::::::::e:<::<<e<<<<<$6-<<10%3+333%+++++++++++++++++++++++++y+y+y+y++y++yyy++yyyyyyyyy+yyyyyyyyyyyyyyyyyy+y+y+y+y++y+y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++yyyyy+++++++yyyyyyyyyyyyyyyyyyyyy++++yyyyyy++++yyy+yyyyy+yyyyyyy++++++yyyyyy++yyyy++++yyyyyy++++0-<><$>$>>>$>>$>>$>$>>>>>",
+"><>>>>><><><>>>>>>>><>>>$6>>-->-----u:700000%++yy+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3%%%%%%%5%55555555555%%5557777::><e::::::::e<:<e<<<e<<>6-$<:07%%%++++++++++++++++++++++++++++++++++++y+y++++y+yyyyyyyyyyyyyyy+++++yyyyyyyyyyyyyy+y+y+y+y++y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyyyyyyyyyyyyyyyyyyyy++yyyyyyyyyyyyyyy+yyyyyyyyyyyyyy+++++yyyyyy++yyyy+++y++yyyyyy+y0u6rr$$6$$><$>>>$>>>$><><",
+">>><><>>>>6---------u---$$1575%557::77075575%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%5%555%5%5%%55%55555%55%%5555557:::>>>$>6>>>>>>><>>$r:775%3++yyy+++++++++++++++++++++++++++++y+++++y+++++++++yyyyyyyyyyyyyy++y+y+y+y+yyyyyyyyy+y+y+y+y++y+y++y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyy+yyyyyyyyyyyyyyyyyyyyyyy++yyyyyyyyy+++++yy++yyyyyy+++++++++++++++yy++yy++yyyyyy++37<-u17:::->>>$>>$>>>>>>>",
+"><>>>$--><:0777777777755%%%+++yyyy+++3%3+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%%5%%%5%5%5555555%5555555555%%%5557777777755%55%555%3yy++++++++++++++++++++++++++y++++++++++++++++++y+y+y+y+yyyyyyyyyyyyyyy+yyyy++yyyyyyyyyyyyyyyyyy++y+y++y++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+++yyyy++++++++yyyyyyyyyyyyyyy+++%5550<1<<>------>$>$><>",
+"---6<1075%++++++++yyyyy++yy++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%%%333%%5%5%%%55555%55555555%%333++yyyyy+++++yyyyyyy+++++++++++++++++++++++++++++++y+++++++y3+++++++++y+y+y+yyyyyyyyyyyyyyyyyyyy+y+yyyyyyyyyyyyyyyyy+y++y+y++y++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyy+++yyyyy+++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+++yyyyy++++++++yyyyyyyyyyyyyyy++++++++%%%%555770:<$-----",
+"0775%3y+yyy+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3333%%%%%5%555%%%%%%%5%5%%5%%3++++++++++++++++++++++++++++++++++++++++++++++++++++++3+++++++++++++++++++y+yy++yyyyyyyyyyyyyyyyyyy++yyyyyyyyyyyyyyyyyyy+y++y+y++y+y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyy+++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+++yyyyy++++++++yyyyyyyyyyyyyyy+++++++++++yy+++yy3%%7701:",
+"y+yy+y++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3%%%%%5%%%%%%3%%33+3%5%%%%%%%%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyy++yyyyyyyyyyyy+y++++yyyyyyyyyyyyyy+y++y+y++y+y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyy+++yyy+++yyyyyyyyyyyyyyyyyyy+yyyy++yyyyyy+yyy+yyy++++++++++++++++++yy++++yy++++yyy+++++++y+++++++++y+yyyy++y",
+"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3+++++++++++++++++++++++++++++++++++++++++++++++++++33%%%%%%%%%%%%%%%%%%3++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++y++y+y+++y+++y+yyyyyyyyyyyyyyyyyy+y+yyyyyyyyyyyy+y+yyy+y+y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyyyyyyyyyyyyyyyyyyy++yyyyyyyyyy+yyyyy++++++yy++++++++yy++++yy++yyyyy+++++++yyy+++++++++++++y++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++33%%%%%%%%%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++y++++++++++++y++y+y+++y+y+y+yyyyyyyyyyyyyyyyy++yyyyyyyyyyyyy++yyyy++y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++++yyyyyyyyyyyyyyyyyyyyy+yyy++yyyy++yyyyyyyyyyyyyyy+++yyyyyyy+++yyy++++++yy++++++++++++++++++yyy+++++++++yyy++++++++++++++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++y+yy++++y++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyy+++++y+++++y+++y+++++++++++++y++++++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++++yyyyyyyyyyyyyyy+yyyyy+yyy++yyyy++yyyyyyyyyyyyyyy+++yyyyyyy+++yyy++++++yy++++++++++++++++++yyy+++++++++yyy++++++++++++++++",
+"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yy++++++++++++y+++++++y+++++y++++++++yy++++y+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++yyyyyy++yy++yyyyyyyyy++++yy+++yyy++yyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyyyy+yyy++yy++++++++yy++++++yyy+yyy+++++++++++++yyy++++++++++",
+"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yy++++++++++++++++++++++++++y++++++++yy++++++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++yyyyyy++yy++yyyyyyyyy++++yy+++yyy++yyyyyyyyyyyyyyyyyyyyyyyyyyy+yyyyyyyyy+yyy++yy++++++++yy++++++yyy+yyy+++++++++++++yyy++++++++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyyy++++++++++++++++++yy++++yy++++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++yyyyyyyyyyyy++++yyyyyyy+++yyyyy+++yyyyy++++++yyyyyyyyyyyyyyy+yyyyy+++++yyyyy++++++++++++++++yy+++++++++++++++++++++++++++++++++yy++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyyy++++++++++++++++++yy++++yy++++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy++yyyyyyyyyyyy++++yyyyyyy+++yyyyy+++yyyyy++++++yyyyyyyyyyyyyyy+yyyyy+++++yyyyy++++++++++++++++yy+++++++++++++++++++++++++++++++++yy++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyyyy+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyy++++++yyyy++++++++++yy++++++++++++++++yyy++++++++++++++++++++++++++++yyy+yyy++++++++++++++++++++++++yyyy++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyyyy+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+yyy++++++yyyy++++++++++yy++++++++++++++++yyy++++++++++++++++++++++++++++yyy+yyy++++++++++++++++++++++++yyyy++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
+"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
+};
diff --git a/hacks/images/macbomb.xbm b/hacks/images/macbomb.xbm
new file mode 100644 (file)
index 0000000..c653276
--- /dev/null
@@ -0,0 +1,474 @@
+#define macbomb_width 448
+#define macbomb_height 126
+static char macbomb_bits[] = {
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x80,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xf9,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x19,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x20,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x80,0x10,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x98,0x19,0x00,0x00,0x00,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,
+ 0x00,0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x40,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0x00,0xe0,0x03,0x50,0x01,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0x00,0x10,0x8c,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,0x98,0x19,0x00,0x00,0x08,
+ 0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x08,0x00,0x10,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x98,0x19,0x00,0x00,0x08,0x40,0x22,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,
+ 0x00,0x00,0x7f,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x7f,0x10,
+ 0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0xc0,0xff,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0xf0,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0xf0,0xff,0x07,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x98,0x19,0x00,0xf8,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,
+ 0x98,0x19,0x00,0xf8,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,0x98,0x19,0x00,0xfc,
+ 0xff,0x1e,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0xfc,0xff,0x1f,0x00,0x00,
+ 0x00,0x00,0x80,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0xfc,0xff,0x1d,0x00,0x00,0x00,0x00,0x80,0x81,
+ 0xc7,0xb6,0xcd,0x00,0x78,0x80,0x63,0xc6,0xf1,0x78,0xfc,0x07,0x78,0x6c,0x9b,
+ 0xc7,0x06,0x1e,0x0e,0xc7,0xcc,0xb6,0x79,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0xfc,0xff,0x1d,0x00,0x00,0x00,0x00,0x80,0xc3,0xcc,0x71,0xcc,0x00,
+ 0xc4,0xc0,0x64,0x66,0x62,0xcc,0xcc,0x0c,0xcc,0x1c,0xc7,0xcc,0x01,0x33,0x93,
+ 0xc9,0xcc,0x71,0xcc,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0xfc,0xff,
+ 0x1d,0x00,0x00,0x00,0x00,0x00,0xc7,0xcc,0x30,0xcc,0x00,0xf8,0xc0,0x61,0xe6,
+ 0x60,0xcc,0xcc,0x0c,0xcc,0x0c,0xc3,0xcc,0x00,0x33,0x83,0xc1,0xcc,0x30,0xcc,
+ 0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0xfc,0xff,0x1f,0x00,0x00,0x00,
+ 0x00,0x00,0xce,0xcc,0x30,0xcc,0x00,0xcc,0x80,0x63,0xc6,0x61,0xfc,0xcc,0x0c,
+ 0xfc,0x0c,0xc3,0xcc,0x00,0x33,0x83,0xc1,0xcc,0x30,0xfc,0xcc,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x98,0x19,0x00,0xfc,0xff,0x1e,0x00,0x00,0x00,0x00,0x00,0xcc,0xcc,
+ 0x30,0xcc,0x00,0xcc,0x00,0x67,0x86,0x63,0x0c,0xcc,0x0c,0x0c,0x0c,0xc3,0xcc,
+ 0x00,0x33,0x83,0xc1,0xcc,0x30,0x0c,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,
+ 0x00,0xf8,0xff,0x0f,0x00,0x00,0x00,0x00,0x80,0xcc,0xcc,0x30,0xcc,0x0c,0xcc,
+ 0x40,0x66,0x26,0x63,0x8c,0xcc,0x0c,0x8c,0x0c,0xc3,0xcc,0x00,0x33,0x93,0xc9,
+ 0xcc,0x30,0x8c,0xcc,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0xf8,0xbf,0x0f,
+ 0x00,0x00,0x00,0x00,0x00,0x87,0xc7,0x30,0xf8,0x0c,0xf8,0x80,0xc3,0xc7,0xc1,
+ 0x78,0xcc,0x0c,0x78,0x0c,0x83,0xc7,0x00,0x1e,0x0e,0x87,0xcf,0x30,0x78,0xf8,
+ 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0xf0,0xff,0x07,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0xc0,0x08,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0xf0,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0xc4,0x04,0x00,0x00,0x20,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0xc0,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
+ 0xc0,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,0x98,0x19,0x00,0x00,0x7f,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,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,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,
+ 0x00,0x00,0x00,0x00,0x00,0x00,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,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,
+ 0x00,0x00,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,0x07,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,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,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,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,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0x00,0x00,0x00,0x00,0x00,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,
+ 0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,
+ 0x00,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,0x07,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,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,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x40,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x0f,0x00,0x00,0x8f,
+ 0x1f,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x19,0x00,0x80,0x19,0x0c,0x00,0x00,0x00,
+ 0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x8c,0x19,0x00,0x80,0x19,0x06,0x00,0x00,0x00,0x00,0x00,0x98,0x19,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x19,
+ 0xf8,0x81,0x19,0x0f,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x19,0x00,0x80,0x19,0x18,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,
+ 0x0f,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x8c,0x19,0xf8,0x81,0x19,0x18,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x30,
+ 0x00,0x00,0x00,0x00,0x00,0x00,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,0x8c,0x19,0x00,0x80,0x19,0x18,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x18,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x19,0x00,
+ 0x80,0x99,0x18,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x80,0x01,0x00,0x00,
+ 0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x0f,0x00,0x00,0x0f,0x0f,0x00,
+ 0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
+ 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x98,0x19,0x00,0x40,0xf8,0x00,0x00,0x18,0x00,0x80,0x01,0x01,0x00,0x42,0x01,
+ 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x40,
+ 0x98,0x01,0x00,0x18,0x00,0x80,0x01,0x01,0x00,0x22,0x02,0x00,0x00,0x00,0x00,
+ 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x40,0x98,0xf1,0x70,0x3c,
+ 0x1e,0xdb,0x03,0x01,0x00,0x42,0x44,0x41,0x11,0x51,0x15,0x14,0x10,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0x40,0x98,0x99,0x99,0x18,0x31,0x87,0x01,0x01,
+ 0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0x40,0xf8,0x98,0x39,0x18,0x3e,0x83,0x01,0x01,0x00,0x42,0x41,0x44,
+ 0x10,0x11,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x40,0x98,
+ 0xf9,0x71,0x18,0x33,0x83,0x01,0x01,0x00,0x22,0xa2,0x82,0x20,0x22,0x22,0x2a,
+ 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x40,0x98,0x19,0xe0,0x18,0x33,
+ 0x83,0x01,0x01,0x00,0x42,0x44,0x00,0x11,0x11,0x11,0x01,0x10,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x98,0x19,0x00,0x40,0x98,0x19,0xc9,0x18,0x33,0x83,0x01,0x01,0x00,
+ 0x22,0x22,0x20,0x22,0x22,0x22,0x22,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,
+ 0x00,0x40,0x98,0xf1,0x70,0x30,0x3e,0x03,0x03,0x01,0x00,0x42,0x44,0x41,0x41,
+ 0x11,0x11,0x14,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x40,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x80,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x98,0x19,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,
+ 0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x18,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x06,0x00,0x00,
+ 0x00,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,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,0x98,0x19,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0x0f,
+ 0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x98,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,
+ 0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0xf9,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x9f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff};
index 7c11b35b04be6f5b9209b3ff63e806582a007498..9d11b350f665b7bb8bc8d73362ed9abdcaa42a93 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1997, 1998, 2001
+/* xscreensaver, Copyright (c) 1992, 1995, 1997, 1998, 2001, 2002
  *  Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -496,6 +496,18 @@ main (int argc, char **argv)
       cmap = xgwa.colormap;
       visual = xgwa.visual;
       visual_warning (screen, window, visual, cmap, True);
+
+      /* Select KeyPress events on the external window.
+       */
+      xgwa.your_event_mask |= KeyPressMask;
+      XSelectInput (dpy, window, xgwa.your_event_mask);
+
+      /* Select ButtonPress events on the external window, if no other
+         app has already selected it (only one app can select ButtonPress
+         at a time: BadAccess results.)
+       */
+      if (! (xgwa.all_event_masks & ButtonPressMask))
+        XSelectInput (dpy, window, xgwa.your_event_mask | ButtonPressMask);
     }
   else if (root_p)
     {
index 158a251fa8afa006bc3d9e52a704487fbadee3bb..4236e8d4b05f6e63ff247bd1acfc2c39f2ea84f1 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992-2001 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -102,5 +102,7 @@ extern void screenhack_handle_events (Display*);
 #define bzero  __ERROR_use_memset_not_bzero_in_xscreensaver__
 #undef  bcopy
 #define bcopy  __ERROR_use_memcpy_not_bcopy_in_xscreensaver__
+#undef  ftime
+#define ftime  __ERROR_use_gettimeofday_not_ftime_in_xscreensaver__
 
 #endif /* __SCREENHACK_H__ */
index 0b95dc5f70750eb958a04535e1c2f598b8e1d8e6..99bd78292b5637315165057467270e6c06af0ea3 100644 (file)
@@ -236,7 +236,7 @@ write_pixbuf (GdkPixbuf *pb, const char *file)
   cinfo.in_color_space = JCS_RGB;
 
   jpeg_set_defaults (&cinfo);
-  cinfo.progressive_mode = TRUE;
+  jpeg_simple_progression (&cinfo);
   jpeg_set_quality (&cinfo, jpeg_quality, TRUE);
 
   jpeg_start_compress (&cinfo, TRUE);
index c986b6023c5d2148edda70371ee1db3e8245a5dd..1261a42efaf3376ea17596b5ea777625868701a0 100644 (file)
--- a/setup.com
+++ b/setup.com
@@ -32,6 +32,7 @@ $ fadeplot    :== $'mydir'fadeplot
 $ flag         :== $'mydir'flag
 $ flame                :== $'mydir'flame
 $ flow         :== $'mydir'flow
+$ fluidballs   :== $'mydir'fluidballs
 $ forest       :== $'mydir'forest
 $ galaxy       :== $'mydir'galaxy
 $ goop         :== $'mydir'goop
@@ -57,8 +58,8 @@ $ lissie      :== $'mydir'lissie
 $ lmorph       :== $'mydir'lmorph
 $ loop         :== $'mydir'loop
 $ maze         :== $'mydir'maze
-$ moire2       :== $'mydir'moire2
 $ moire                :== $'mydir'moire
+$ moire2       :== $'mydir'moire2
 $ mountain     :== $'mydir'mountain
 $ munch                :== $'mydir'munch
 $ nerverot     :== $'mydir'nerverot
index 94d6acbd9672d9efb3038c3f21dc73a07d6f583d..c961539421dd340e3b36a2e1fc0b7ed38290f9a7 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997, 2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -578,7 +578,7 @@ make_uniform_colormap (Display *dpy, Visual *visual, Colormap cmap,
                  0,   S, V,
                  359, S, V,
                  colors, &ncolors,
-                 False, True,
+                 False, allocate_p,
                   (writable_pP && *writable_pP));
 
   /* If we tried for writable cells and got none, try for non-writable. */
index a10edcc07e38f8dce7fa888226900be1ab7903ed..1fadffd597b14b597aa2b0695555ec6ad60ad70d 100644 (file)
@@ -11,8 +11,8 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) OVERLAY.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) RESOURCES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) SPLINE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) USLEEP.C
-$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL-GL.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-GTOD.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-STRDUP.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XDBE.C
index d8aed70b135a3dbf369919de3887addde76eaaea..fe09afa10f1cfdaa6a6967515c67c72e3ebcd2c2 100644 (file)
@@ -11,8 +11,8 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) OVERLAY.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) RESOURCES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) SPLINE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) USLEEP.C
-$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL-GL.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VISUAL.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-GTOD.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) VMS-STRDUP.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H)/INCL=([],[-]) XDBE.C
index ab9c59b3e1a33a379fa2039d280a99fe146e6da6..563fa6a720524bc90d1b4e10a41231ad6d751d74 100644 (file)
@@ -1,7 +1,7 @@
 /* XPM */
 
 /* XScreenSaver Logo, designed by Angela Goodman <rzr_grl@yahoo.com>
-   Copyright (c) 2001 by Jamie Zawinski <jwz@jwz.org>
+   Copyright (c) 2001, 2002 by Jamie Zawinski <jwz@jwz.org>
    Unauthorized use or reproduction prohibited.
 
    http://www.jwz.org/xscreensaver/
 static unsigned const char * const logo_180_xpm[] = {
 "180 180 16 1",
 "      c None    m None",
-".     c #020204 m #000000",
-"+     c #929291 m #000000",
-"@     c #A30204 m #000000",
+")     c #FF0000 m #FFFFFF",
+",     c #FFFFFF m #FFFFFF",
+".     c #000000 m #000000",
+"-     c #ED9E00 m #FFFFFF",
+"'     c #4F3504 m #000000",
+"=     c #DBDBDB m #000000",
+">     c #B0B0B0 m #000000",
+"+     c #929292 m #000000",
+";     c #797979 m #000000",
+"@     c #A30000 m #000000",
 "#     c #604D28 m #000000",
-"$     c #600204 m #000000",
+"$     c #600000 m #000000",
 "%     c #37332D m #000000",
 "&     c #2D0C05 m #000000",
-"*     c #A46E04 m #000000",
-"=     c #DBDBDA m #000000",
-"-     c #ED9E04 m #FFFFFF",
-";     c #797977 m #000000",
-">     c #B0B0AE m #000000",
-",     c #FEFEFC m #FFFFFF",
-"'     c #4F3504 m #000000",
-")     c #FD0204 m #FFFFFF",
+"*     c #A46E00 m #000000",
 "                                                                                                                                                                                    ",
 "                                                                    .                                                                                                               ",
 "                                                                   ..                                                                                                               ",
index 5ca5d63f112b43f0ccf493438c672168ddd33806..eee542f72e0c5f070fc331cd05c52df5fe5087da 100644 (file)
@@ -1,7 +1,7 @@
 /* XPM */
 
 /* XScreenSaver Logo, designed by Angela Goodman <rzr_grl@yahoo.com>
-   Copyright (c) 2001 by Jamie Zawinski <jwz@jwz.org>
+   Copyright (c) 2001, 2002 by Jamie Zawinski <jwz@jwz.org>
    Unauthorized use or reproduction prohibited.
 
    http://www.jwz.org/xscreensaver/
 static unsigned const char * const logo_50_xpm[] = {
 "50 50 16 1",
 "      c None    m None",
-".     c #050305 m #000000",
-"+     c #989798 m #000000",
+"&     c #FF0000 m #FFFFFF",
+",     c #FFFFFF m #FFFFFF",
+".     c #000000 m #000000",
+"=     c #CCCCCC m #000000",
+"-     c #B0B0B0 m #000000",
+"+     c #989898 m #000000",
+";     c #707070 m #000000",
 "@     c #A30805 m #000000",
 "#     c #5E4D34 m #000000",
 "$     c #A6531B m #000000",
 "%     c #620805 m #000000",
-"&     c #FA0204 m #FFFFFF",
 "*     c #A63013 m #000000",
-"=     c #CCCBCB m #000000",
-"-     c #B1B0AE m #000000",
-";     c #707070 m #000000",
 ">     c #523410 m #000000",
-",     c #FCFCFA m #FFFFFF",
 "'     c #AC6C44 m #000000",
 ")     c #24221C m #000000",
 "                                                  ",
index 428aa2f581e2b39b325a052f3fc024b0ee42844a..21cc4d401cd7bfaacbf0b164779697fbc867b4e4 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2001 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2001-2002 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -55,7 +55,7 @@ parse_xpm_data (Display *dpy, Visual *visual, Colormap colormap, int depth,
 {
   int w, w8, h, ncolors, nbytes;
   char c;
-  int i;
+  int i, pixel_count;
   struct {
     char byte;
     int cr; int cg; int cb;
@@ -136,6 +136,7 @@ parse_xpm_data (Display *dpy, Visual *visual, Colormap colormap, int depth,
   if (depth == 1) transparent_color = 1;
 
   pixels = (unsigned long *) calloc (ncolors+1, sizeof(*pixels));
+  pixel_count = 0;
   for (i = 0; i < ncolors; i++)
     {
       if (cmap[i].cr == -1) /* transparent */
@@ -152,10 +153,15 @@ parse_xpm_data (Display *dpy, Visual *visual, Colormap colormap, int depth,
           if (depth == 1 ||
               !XAllocColor (dpy, colormap, &color))
             {
-              color.pixel = (cmap[i].mr ? 1 : 0);
+              color.red   = (cmap[i].mr << 8) | cmap[i].mr;
+              color.green = (cmap[i].mg << 8) | cmap[i].mg;
+              color.blue  = (cmap[i].mb << 8) | cmap[i].mb;
+              if (!XAllocColor (dpy, colormap, &color))
+                abort();
             }
-          pixels[i] = color.pixel;
-          rmap[(int) cmap[i].byte] = i;
+          pixels[pixel_count] = color.pixel;
+          rmap[(int) cmap[i].byte] = pixel_count;
+          pixel_count++;
         }
     }
 
@@ -165,8 +171,7 @@ parse_xpm_data (Display *dpy, Visual *visual, Colormap colormap, int depth,
   if (ximage)
     {
       int x, y;
-      ximage->data = (char *)
-        calloc ( ximage->height, ximage->bytes_per_line);
+      ximage->data = (char *) calloc (ximage->height, ximage->bytes_per_line);
       for (y = 0; y < h; y++)
         {
           const unsigned char *line = *data++;
@@ -185,7 +190,7 @@ parse_xpm_data (Display *dpy, Visual *visual, Colormap colormap, int depth,
   *width_ret = w;
   *height_ret = h;
   *pixels_ret = pixels;
-  *npixels_ret = ncolors;
+  *npixels_ret = pixel_count;
   return ximage;
 }
 
@@ -201,8 +206,7 @@ xscreensaver_logo (Display *dpy, Window window, Colormap cmap,
                    Pixmap *mask_ret,
                    Bool big_p)
 {
-  int npixels, iw, ih;
-  unsigned long *pixels;
+  int iw, ih;
   XImage *image;
   Pixmap p = 0;
   XWindowAttributes xgwa;
@@ -213,8 +217,9 @@ xscreensaver_logo (Display *dpy, Window window, Colormap cmap,
   image = parse_xpm_data (dpy, xgwa.visual, xgwa.colormap, xgwa.depth,
                           background_color,
                           (big_p ? logo_180_xpm : logo_50_xpm),
-                          &iw, &ih, &pixels, &npixels,
+                          &iw, &ih, pixels_ret, npixels_ret,
                           (mask_ret ? &mask : 0));
+
   if (image)
     {
       XGCValues gcv;
@@ -222,6 +227,8 @@ xscreensaver_logo (Display *dpy, Window window, Colormap cmap,
       p = XCreatePixmap (dpy, window, iw, ih, xgwa.depth);
       gc = XCreateGC (dpy, p, 0, &gcv);
       XPutImage (dpy, p, gc, image, 0, 0, 0, 0, iw, ih);
+      free (image->data);
+      image->data = 0;
       XDestroyImage (image);
       XFreeGC (dpy, gc);
 
index 942d03b98dd40e6f7f2c974df71188ffe35af479..035b210021c3acd1b001cb4254f5506815d9ef8e 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 4.01 (24-Feb-2002), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 4.02 (18-Mar-2002), by Jamie Zawinski (jwz@jwz.org)";
index d8983cb58b3e9d5a4b29006f6f6138c81063bde5..3e7f5d59af491b4de79d5f5616998362e8bed50e 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title:          xscreensaver
-Version:        4.01
-Entered-date:   24FEB02
+Version:        4.02
+Entered-date:   18MAR02
 Description:    A modular screen saver and locker for the X Window System.
                 Highly customizable: allows the use of any program that
                 can draw on the root window as a display mode.
@@ -10,16 +10,16 @@ Keywords:       screen saver, screen lock, lock, xlock, X11
 Author:         jwz@jwz.org (Jamie Zawinski)
 Maintained-by:  jwz@jwz.org (Jamie Zawinski)
 Primary-site:   http://www.jwz.org/xscreensaver/
-                2156K xscreensaver-4.01.tar.gz
-                56K   xscreensaver.README
+                2205K xscreensaver-4.02.tar.gz
+                57K   xscreensaver.README
                 1K    xscreensaver.lsm
 Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/
-                2156K xscreensaver-4.01.tar.gz
-                56K   xscreensaver.README
+                2205K xscreensaver-4.02.tar.gz
+                57K   xscreensaver.README
                 1K    xscreensaver.lsm
 Alternate-site: ftp.x.org /contrib/applications/
-                2156K xscreensaver-4.01.tar.gz
-                56K   xscreensaver.README
+                2205K xscreensaver-4.02.tar.gz
+                57K   xscreensaver.README
                 1K    xscreensaver.lsm
 Platforms:      Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD,
                 BSDI, SCO, OSF1, Ultrix, VMS.
index 6d7a6cb1fe6b6781b4b02986cf1e178701a48548..cd858e4ba788b478d94444b14cd33558730524d4 100644 (file)
@@ -1,5 +1,5 @@
 %define        name            xscreensaver
-%define        version         4.01
+%define        version         4.02
 %define        release         1
 %define        serial          1
 %define        x11_prefix      /usr/X11R6