aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2024-01-03 00:35:20 -0500
committerB. Watson <urchlay@slackware.uk>2024-01-03 00:35:20 -0500
commitba9e5e94e3c0622a0dc5a91dcb0fe671cb35c07c (patch)
treef1049a0583a3d4dd24521fa5e6fd355c1493c813
downloadhcalc-ba9e5e94e3c0622a0dc5a91dcb0fe671cb35c07c.tar.gz
initial commit
-rw-r--r--CHANGES37
-rw-r--r--COPYING339
-rw-r--r--Makefile73
-rw-r--r--README27
-rw-r--r--TODO1
-rw-r--r--config.c157
-rw-r--r--desktop/hcalc.desktop10
-rw-r--r--draw.c150
-rw-r--r--hcalc.1271
-rw-r--r--hcalc.c68
-rw-r--r--hcalc.h62
-rw-r--r--hcalc.rst251
-rw-r--r--icons/16x16/apps/hcalc.pngbin0 -> 1398 bytes
-rw-r--r--icons/22x22/apps/hcalc.pngbin0 -> 1427 bytes
-rw-r--r--icons/32x32/apps/hcalc.pngbin0 -> 1508 bytes
-rw-r--r--icons/48x48/apps/hcalc.pngbin0 -> 1624 bytes
-rw-r--r--icons/64x64/apps/hcalc.pngbin0 -> 1505 bytes
-rw-r--r--images.c60
-rw-r--r--input.c517
-rwxr-xr-xinst/usr/bin/hcalcbin0 -> 122384 bytes
-rw-r--r--inst/usr/doc/blah/CHANGES37
-rw-r--r--inst/usr/doc/blah/README27
-rw-r--r--inst/usr/doc/blah/TODO1
-rw-r--r--inst/usr/man/man1/hcalc.1.gzbin0 -> 2815 bytes
-rw-r--r--inst/usr/share/applications/hcalc.desktop10
-rw-r--r--inst/usr/share/icons/hicolor/16x16/apps/hcalc.pngbin0 -> 1398 bytes
-rw-r--r--inst/usr/share/icons/hicolor/22x22/apps/hcalc.pngbin0 -> 1427 bytes
-rw-r--r--inst/usr/share/icons/hicolor/32x32/apps/hcalc.pngbin0 -> 1508 bytes
-rw-r--r--inst/usr/share/icons/hicolor/48x48/apps/hcalc.pngbin0 -> 1624 bytes
-rw-r--r--inst/usr/share/icons/hicolor/64x64/apps/hcalc.pngbin0 -> 1505 bytes
-rw-r--r--keystrokes13
-rw-r--r--setupx.c167
-rw-r--r--xpm/chars.250.xpm19
-rw-r--r--xpm/chars.500.xpm33
-rw-r--r--xpm/chars.xpm12
-rw-r--r--xpm/face.250.xpm304
-rw-r--r--xpm/face.500.xpm598
-rw-r--r--xpm/face.xpm157
38 files changed, 3401 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..7cddba0
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,37 @@
+Version 1.2u1, 2024/01/02:
+--------------------------
+- Support original size (125x147), 2x (250x294), and 4x (500x588).
+- Recreate the 250x294 graphics by resizing without interpolation,
+ to give a "crisp and pixellated" look rather than blurry.
+- Change the build system back to make. This project is so simple
+ that I don't see any benefit in using cmake.
+- Add icons and .desktop files.
+- Tell the window manager not to allow resizing the window. The
+ app can't resize anyway, so trying to make the window bigger just
+ results in a confusing mess. Making it smaller works, but parts
+ of the UI get cut off so it's unusable. Probably, tiling window
+ managers will ignore this (not much I can do about that).
+- Fix a few -Wall warnings.
+- Fix a segfaulting bug. To reproduce, start up the old hcalc and
+ press Backspace 6 times (or so; eventually it will crash).
+- Add command-line options to control the window size (-small -medium
+ -large).
+- Add command line options to control the starting number base (-hex,
+ -dec, etc).
+- Add a man page. There was no documentation at all.
+- Change "q" to quit, to uppercase Q or control-Q. I kept exiting when
+ trying to type a 1.
+- Get rid of ^C = quit keystroke.
+- Add ^C and ^V keystrokes for copy and paste. Now hcalc is fully
+ functional without using the mouse.
+- Add modulus operation. % key, or right-click on / button.
+- Add C as a synonym for Escape (CLR key).
+- Add Delete as a synonym for backspace (DEL key).
+- Fix a bug: stop allowing hex digits a-f when in decimal mode.
+- Add ~/.hcalc.cfg, which holds the state of hcalc. Written on exit,
+ read on startup. Also add -default arg, to prevent reading this.
+- Add -quiet option to silence the X bell.
+- Allow changing the window size while running (toggle between the 3
+ sizes).
+- Add a 'make install' target, which will install the binary, icons,
+ man page, and .desktop file (with DESTDIR support for packagers).
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c0faff2
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,73 @@
+# Makefile for hcalc. Requires GNU make.
+
+PROJ = hcalc
+
+CC = gcc
+CFLAGS = -Wall -g
+
+DESTDIR =
+PREFIX = /usr
+BINDIR = $(PREFIX)/bin
+SHAREDIR = $(PREFIX)/share
+MANDIR = $(SHAREDIR)/man
+MAN1DIR = $(MANDIR)/man1
+DOCDIR = $(SHAREDIR)/doc/$(PROJ)
+ICONDIR = $(SHAREDIR)/icons/hicolor
+DESKTOPDIR = $(SHAREDIR)/applications
+INSTALL = install
+INSTALL_DATA = $(INSTALL) -m0644
+INSTALL_PROG = $(INSTALL) -s -m0755
+ifeq ($(shell whoami),root)
+INSTALL_USER = -o root -g root
+else
+INSTALL_USER =
+endif
+MKDIR_P = mkdir -p
+GZIP = gzip
+
+MANPAGE = $(PROJ).1
+OBJS = \
+ hcalc.o \
+ input.o \
+ setupx.o \
+ images.o \
+ draw.o \
+ config.o
+
+all: $(PROJ) $(MANPAGE)
+
+hcalc.o: hcalc.c hcalc.h
+
+input.o: input.c hcalc.h
+
+setupx.o: setupx.c hcalc.h
+
+draw.o: draw.c hcalc.h
+
+config.o: config.c hcalc.h
+
+images.o: images.c hcalc.h xpm/*.xpm
+
+$(PROJ): $(OBJS)
+ $(CC) -o $@ $^ $(LDFLAGS) -lXpm -lX11
+
+$(MANPAGE): $(PROJ).rst
+ rst2man.py $(PROJ).rst > $(MANPAGE)
+
+clean:
+ rm -f *.o *.d *~ \#* $(PROJ) core
+
+install: all
+ $(MKDIR_P) $(DESTDIR)$(BINDIR) $(DESTDIR)$(SHAREDIR) \
+ $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(DOCDIR) $(DESTDIR)$(DESKTOPDIR)
+ $(INSTALL_PROG) $(INSTALL_USER) $(PROJ) $(DESTDIR)$(BINDIR)
+ $(INSTALL_DATA) $(INSTALL_USER) $(MANPAGE) $(DESTDIR)$(MAN1DIR)
+ $(INSTALL_DATA) $(INSTALL_USER) README CHANGES TODO $(DESTDIR)$(DOCDIR)
+ $(INSTALL_DATA) $(INSTALL_USER) desktop/$(PROJ).desktop $(DESTDIR)$(DESKTOPDIR)
+ for i in 16x16 22x22 32x32 48x48 64x64; do \
+ $(MKDIR_P) $(DESTDIR)$(ICONDIR)/$$i/apps ; \
+ $(INSTALL_DATA) $(INSTALL_USER) icons/$$i/apps/$(PROJ).png $(DESTDIR)$(ICONDIR)/$$i/apps ; \
+ done
+ $(GZIP) -9f $(DESTDIR)$(MAN1DIR)/$(MANPAGE)
+
+.PHONY: all clean install
diff --git a/README b/README
new file mode 100644
index 0000000..be32bfd
--- /dev/null
+++ b/README
@@ -0,0 +1,27 @@
+README for Urchlay's fork of hcalc
+----------------------------------
+
+This is a fork of hcalc with some fixes and enhancements.
+
+Original hcalc is by DJ Delorie, and can be found here:
+https://www.delorie.com/store/hcalc/
+This version dates back to the late 90s, when computer monitors had
+lower resolution. It uses a 125x147 window, which is pretty small and
+hard to read on a modern display (particularly a 4K one). It's also
+harder to click on the tiny buttons.
+
+Sometime around 2007, Theodore Kilgore forked hcalc and made some
+changes:
+- Increase the application's window size by 2x (from 125x147
+ to 250x294). This helps some with modern displays.
+- Make the window manager's close button work.
+- Change the build system from make to cmake.
+- Add a copy of the GPL as COPYING, since the original version
+ doesn't have it (though the site states that it's GPL).
+This was released as hcalc-1.2, and can be found here:
+https://github.com/jlec/hcalc/
+Also, this is the version packaged by Gentoo.
+
+In 2024, I (B. Watson, urchlay@slackware.uk) have made many further
+changes. See CHANGES for the list. See the man page for full
+documentation (something that was lacking in the previous releases).
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..d60c774
--- /dev/null
+++ b/TODO
@@ -0,0 +1 @@
+- Cleaner way of switching window sizes at runtime.
diff --git a/config.c b/config.c
new file mode 100644
index 0000000..752dec5
--- /dev/null
+++ b/config.c
@@ -0,0 +1,157 @@
+/* Config file stuff for hcalc.
+ Copyright 2023, B. Watson.
+ Distributed under the terms of the GNU GPL.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include "hcalc.h"
+
+#define SIGNATURE "\x88\x83\xa1\xac\xa3\x82\x97\x00"
+#define SIGLEN (sizeof(SIGNATURE) - 1)
+#define TRAILER 0x626c6168L
+
+#define FILENAME ".hcalc.cfg"
+
+#define MAX_HOME 8192
+
+/* signature may end up in file(1) magic.
+ doublesize and trailer are there to avoid using configs created
+ on a different architecture.
+ Also, the file size is checked against the size of the struct.
+ In theory this could be affected by compiler options, but on my
+ system, Xlib code compiled with -fpack-struct fails to run anyway.
+ I suspect this is true everywhere...
+ */
+struct hcalc_config {
+ char signature[SIGLEN];
+ char doublesize;
+ char winsize;
+ char base;
+ char quiet;
+ double value, saved, stored;
+ long trailer;
+};
+
+char *home_dir = NULL;
+char config_path[MAX_HOME]; /* ludicrous size */
+
+size_t filesize(FILE *f) {
+ struct stat st;
+
+ if(fstat(fileno(f), &st) < 0) {
+ perror("fstat");
+ return 0;
+ }
+
+ return st.st_size;
+}
+
+void set_home_dir(void) {
+ home_dir = getenv("HOME"); /* could be fancier (getpwent()) */
+ if(!home_dir) return;
+ if(strlen(home_dir) > (MAX_HOME - 100))
+ home_dir = NULL;
+}
+
+void set_config_path(void) {
+ sprintf(config_path, "%s/%s", home_dir, FILENAME);
+/* fprintf(stderr, "Using config file: %s\n", config_path); */
+}
+
+void load_config(void) {
+ FILE *f;
+ struct hcalc_config conf;
+ int result;
+
+/* printf("load_config() called\n"); */
+ set_home_dir();
+ if(!home_dir) {
+ fprintf(stderr, "HOME not set or too long, not loading/saving config file.\n");
+ return;
+ }
+ set_config_path();
+
+ f = fopen(config_path, "rb");
+ if(!f) {
+ if(errno != ENOENT) perror(config_path);
+ return;
+ }
+
+ if(filesize(f) != sizeof(conf)) {
+ fprintf(stderr, "%s: wrong size (should be %ld bytes), ignoring.\n", config_path, sizeof(conf));
+ fclose(f);
+ return;
+ }
+
+ fread(&conf, 1, sizeof(conf), f);
+ result = ferror(f);
+ fclose(f);
+
+ if(result) {
+ perror(config_path);
+ return;
+ }
+
+ if(memcmp(conf.signature, SIGNATURE, SIGLEN) != 0) {
+ fprintf(stderr, "%s: Bad config file signature, ignoring\n", config_path);
+ return;
+ }
+
+ if(conf.doublesize != sizeof(double) || conf.trailer != TRAILER) {
+ fprintf(stderr, "%s: Bad config file architecture, ignoring\n", config_path);
+ return;
+ }
+
+/* fprintf(stderr, "%s: config file OK\n", config_path); */
+ value = conf.value;
+ saved = conf.saved;
+ stored = conf.stored;
+ winsize = conf.winsize;
+ base = conf.base;
+ quiet = conf.quiet;
+}
+
+void save_config(void) {
+ FILE *f;
+ struct hcalc_config conf;
+ int result;
+
+/* printf("save_config() called\n"); */
+ set_home_dir();
+ if(!home_dir) return;
+ set_config_path();
+
+ unlink(config_path); /* avoid symlink weirdness */
+
+ f = fopen(config_path, "wb");
+ if(!f) {
+ perror(config_path);
+ return;
+ }
+
+ memcpy(conf.signature, SIGNATURE, SIGLEN);
+ conf.doublesize = sizeof(double);
+ conf.value = value;
+ conf.saved = saved;
+ conf.stored = stored;
+ conf.winsize = winsize;
+ conf.base = base;
+ conf.quiet = quiet;
+ conf.trailer = TRAILER;
+
+ fwrite(&conf, 1, sizeof(conf), f);
+ result = ferror(f);
+
+ if(result) {
+ perror(config_path);
+ } else {
+/* fprintf(stderr, "Wrote config OK\n"); */
+ }
+
+ fclose(f);
+}
diff --git a/desktop/hcalc.desktop b/desktop/hcalc.desktop
new file mode 100644
index 0000000..10232fe
--- /dev/null
+++ b/desktop/hcalc.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=HCalc
+Comment=Hex Calculator
+Exec=hcalc
+Icon=hcalc
+Terminal=false
+StartupNotify=false
+Categories=Science;Math
diff --git a/draw.c b/draw.c
new file mode 100644
index 0000000..6f009af
--- /dev/null
+++ b/draw.c
@@ -0,0 +1,150 @@
+/* Copyright 1998 DJ Delorie <dj@delorie.com>
+ Distributed under the terms of the GNU GPL
+ http://www.delorie.com/store/hcalc/
+ Revisions copyright 2007,
+ Theodore Kilgore <kilgota@auburn.edu>
+ More revisions copyright 2023, B. Watson <urchlay@slackware.uk>
+*/
+#include "hcalc.h"
+#include <string.h>
+
+static unsigned int shown_offsets[15];
+static int shown_bitmask;
+static int show_bits;
+int scale_factor;
+
+#define BASE_CHARS_LEFT 6
+#define BASE_CHARS_TOP 6
+#define BASE_CHAR_WIDTH 5
+#define BASE_CHAR_HEIGHT 7
+#define BASE_BITS_LEFT_X 92
+#define BASE_BITS_TOP_1 6
+#define BASE_BITS_BOT_1 10
+#define BASE_BITS_TOP_0 10
+#define BASE_BITS_BOT_0 12
+
+#define CHARS_LEFT (BASE_CHARS_LEFT * scale_factor)
+#define CHARS_TOP (BASE_CHARS_TOP * scale_factor)
+#define CHAR_WIDTH (BASE_CHAR_WIDTH * scale_factor)
+#define CHAR_HEIGHT (BASE_CHAR_HEIGHT * scale_factor)
+#define BITS_LEFT_X (BASE_BITS_LEFT_X * scale_factor)
+#define BITS_TOP_1 (BASE_BITS_TOP_1 * scale_factor)
+#define BITS_BOT_1 (BASE_BITS_BOT_1 * scale_factor)
+#define BITS_TOP_0 (BASE_BITS_TOP_0 * scale_factor)
+#define BITS_BOT_0 (BASE_BITS_BOT_0 * scale_factor)
+
+void
+redraw_chars()
+{
+ int i;
+ for (i=0; i<15; i++)
+ {
+ XCopyArea(display, chars, window, gc,
+ shown_offsets[i], 0, CHAR_WIDTH, CHAR_HEIGHT,
+ CHARS_LEFT+BITS_TOP_1*i, CHARS_TOP);
+ }
+}
+
+void
+redraw()
+{
+ XCopyArea(display, face, window, gc, 0, 0, widths[winsize], heights[winsize], 0, 0);
+
+ if (show_bits)
+ {
+ int i, x;
+ XSetForeground(display, gc, bit_off);
+ for (i=0; i<32; i++)
+ {
+ x = BITS_LEFT_X - (BITS_TOP_1/3)*i - (BITS_TOP_1)/2*(i/4);
+ if (!(shown_bitmask & (1<<i)))
+ XDrawLine(display, window, gc, x, BITS_TOP_0, x, BITS_BOT_0);
+ }
+ XSetForeground(display, gc, bit_on);
+ for (i=0; i<32; i++)
+ {
+ x = BITS_LEFT_X - scale_factor*2*i - scale_factor*3*(i/4);
+ if (shown_bitmask & (1<<i))
+ XDrawLine(display, window, gc, x, BITS_TOP_1, x, BITS_BOT_1);
+ }
+ }
+ else
+ redraw_chars();
+}
+
+void
+set_bits(int b)
+{
+ shown_bitmask = b;
+ show_bits = 1;
+ redraw();
+}
+
+void
+set_string(char *s)
+{
+ char tmp[16];
+ int i;
+ sprintf(tmp, "%15.15s", s);
+ for (i=0; i<15; i++)
+ shown_offsets[i] = char_to_x[(int)tmp[i]];
+ if (show_bits == 0)
+ redraw_chars();
+ else
+ {
+ show_bits = 0;
+ redraw();
+ }
+}
+
+void
+send_current_display()
+{
+ char tmp[40], *tp=tmp;
+ int i;
+ XEvent e;
+
+ if (show_bits)
+ {
+ for (i=31; i>0; i--)
+ if (shown_bitmask & (1<<i))
+ break;
+ for (; i>=0; i--)
+ {
+ if (shown_bitmask & (1<<i))
+ *tp++ = '1';
+ else
+ *tp++ = '0';
+ }
+ }
+ else
+ {
+ for (i=0; i<15; i++)
+ {
+ char c = charmap[shown_offsets[i]/BITS_TOP_1];
+ if (c != ' ' && c != ',')
+ *tp++ = c;
+ }
+ }
+
+ *tp = 0;
+
+ e.type = SelectionNotify;
+ e.xselection.display = display;
+ e.xselection.requestor = event.xselectionrequest.requestor;
+ e.xselection.selection = event.xselectionrequest.selection;
+ e.xselection.target = event.xselectionrequest.target;
+ e.xselection.property = event.xselectionrequest.property;
+ e.xselection.time = event.xselectionrequest.time;
+
+ if (event.xselectionrequest.target != XA_STRING)
+ {
+ e.xselection.property = None;
+ }
+ else
+ {
+ XChangeProperty(display, e.xselection.requestor, e.xselection.property,
+ XA_STRING, 8, PropModeReplace, (unsigned char *)tmp, strlen(tmp));
+ }
+ XSendEvent(display, e.xselection.requestor, False, 0, &e);
+}
diff --git a/hcalc.1 b/hcalc.1
new file mode 100644
index 0000000..994c026
--- /dev/null
+++ b/hcalc.1
@@ -0,0 +1,271 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "HCALC" 1 "2024-01-03" "1.2u1" "Urchlay's Misc Stuff"
+.SH NAME
+hcalc \- graphical hex calculator
+.\" RST source for hcalc(1) man page. Convert with:
+.
+.\" rst2man.py hcalc.rst > hcalc.1
+.
+.SH SYNOPSIS
+.sp
+hcalc [\fI\-default\fP] [\fI\-small\fP | \fI\-medium\fP | \fI\-large\fP] [\fI\-dec\fP | \fI\-hex\fP | \fI\-oct\fP | \fI\-bin\fP ] [\fI\-quiet\fP] [\fI\-\-version\fP] [\fI\-\-help\fP]
+.SH DESCRIPTION
+.sp
+\fBhcalc\fP is a small (137x174 pixels minimum) TI Programmer II
+semi\-clone for Unix/X11 and Windows 95/NT. It doesn\(aqt take up much
+space, and supports decimal, hex, binary, and octal modes.
+.sp
+\fBhcalc\fP is operated with the mouse and/or keyboard. See \fBMOUSE\fP and
+\fBKEYBOARD\fP sections, below.
+.SH OPTIONS
+.sp
+Options listed as (persistent) get saved to the config file, so
+they\(aqll still apply the next time \fBhcalc\fP is started. This applies
+not only to command\-line arguments; the settings get saved if they\(aqre
+changed via the mouse or keyboard, too.
+.INDENT 0.0
+.TP
+.B \fB\-small\fP
+Display in a 125x147 window (persistent).
+.TP
+.B \fB\-medium\fP
+Display in a 250x294 window (persistent).
+.TP
+.B \fB\-large\fP
+Display in a 500x588 window (persistent). This is the default.
+.TP
+.B \fB\-dec\fP
+Start up in decimal mode (persistent). This is the default.
+.TP
+.B \fB\-hex\fP
+Start up in hexadecimal mode (persistent).
+.TP
+.B \fB\-oct\fP
+Start up in octal mode (persistent).
+.TP
+.B \fB\-bin\fP
+Start up in binary mode (persistent).
+.TP
+.B \fB\-default\fP
+Do not read the config file on startup. \fINOTE:\fP This option must
+be the first on the command line, or it will be ignored!
+.TP
+.B \fB\-quiet\fP
+Do not ring the X bell on invalid input (persistent).
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-version
+Output version number and exit.
+.TP
+.B \-\-help
+Output usage string and exit.
+.UNINDENT
+.SH DISPLAY
+.sp
+The numeric display is limited to 15 digits in decimal, hex, or octal
+base. In binary mode, it displays 32 bits, but uses narrow "ticks"
+rather than 0 and 1.
+.sp
+In hex mode, the number in the display will always be prefixed with
+"0x". In octal mode, it will always be prefixed with "0". In decimal
+mode, there is no prefix.
+.sp
+In case of error (e.g. division by zero), the display will show a
+lowercase "f" in decimal mode, or only the prefix in hex or octal
+mode, or all 0 bits in binary mode. When this happens, you may have to
+press \fBCLR\fP or \fBEscape\fP to recover.
+.SH MOUSE
+.sp
+Mouse operation is simple: for the most part, just click on the
+buttons to press them.
+.sp
+There\(aqs no \fI%\fP button for the modulus operator, but you can
+right\-click on the \fI÷\fP (division) key.
+.sp
+Right\-clicking (or any button other than 1) on the \fICLR\fP key exits
+\fBhcalc\fP\&.
+.sp
+For the numeric display, clicking button 1 (usually the left one)
+copies the number to the X selection buffer. Clicking any other
+button pastes from X, but beware: pasting anything but a number in
+the current base might have unexpected effects, because all pasted
+characters are treated as keystrokes (so, e.g. pasting a capital Q
+quits the application). This can be useful, e.g. if you paste "2+2=",
+\fBhcalc\fP will display "4".
+.SH KEYBOARD
+.INDENT 0.0
+.TP
+.B \fB0\-9\fP, \fBa\-f\fP
+Digits. Lowercase only for the hex digits. Entering digits
+larger than the current number base is impossible (e.g. hex digits
+when in decimal mode, or digits other than 0 or 1 in binary mode) and
+will be ignored.
+.TP
+.B \fB+\fP \fB\-\fP \fB*\fP \fBx\fP \fB/\fP \fB%\fP
+Arithmetic: addition, subtraction, multiplication, division, modulus. Note that
+\fBx\fP is the same as \fB*\fP\&.
+.TP
+.B \fB\&.\fP
+Decimal point. Only works in decimal mode (base 10); other bases
+are integer\-only.
+.TP
+.B \fB_\fP
+Invert sign. The \fI+/\-\fP key.
+.TP
+.B \fB=\fP \fBEnter\fP
+The \fI=\fP key (equals).
+.TP
+.B \fB&\fP \fB|\fP \fB^\fP \fB~\fP
+Boolean operations. AND, OR, XOR, NOT (unary).
+.TP
+.B \fB<\fP \fB>\fP
+Bit shifts, unary. Left 1 bit, right 1 bit.
+.TP
+.B \fBS\fP
+\fISHF\fP key: shift left/right by some number of bits (binary
+operation, like addition). Shifts left for positive
+numbers and right for negative. This is less confusing
+than it sounds: 1 shifted left once is 2, \-1 shifted right
+once in \-2.
+.TP
+.B \fBBackspace\fP \fBDelete\fP
+\fIDEL\fP key: delete the rightmost digit.
+.TP
+.B \fBC\fP \fBEscape\fP
+\fICLR\fP key: clears the number.
+.TP
+.B \fBD\fP \fBH\fP \fBO\fP \fBB\fP
+Set the number base to decimal, hex, octal, or binary. The
+number currently displayed is converted into the new base.
+These are capital letters (hold down Shift).
+.TP
+.B \fBF1\fP \fBF2\fP \fBF3\fP \fBF4\fP
+Same as \fBD\fP \fBH\fP \fBO\fP \fBB\fP\&.
+.TP
+.B \fB[\fP \fB]\fP \fB}\fP
+\fISTO\fP (store number), \fIRCL\fP (recall stored number), \fISUM\fP
+(add current number to stored number). \fISTO\fP, \fIRCL\fP, and \fISUM\fP are
+the same as \fIM\fP, \fIMR\fP, and \fIM+\fP on \(aqpocket\(aq calculators.
+.TP
+.B \fB^C\fP
+Copy the current number to the X selection
+buffer. Same as clicking mouse button 1 (usually left) on the number.
+.TP
+.B \fB^V\fP
+Paste from the X selection buffer.
+Same as clicking a mouse button other than 1 (right\-clicking) on the number.
+.TP
+.B \fBq\fP
+Quiet. Toggles the audible bell.
+.TP
+.B \fBQ\fP \fB^Q\fP
+Quit \fBhcalc\fP\&. Capital letter, so press Shift. Control\-Q does
+the same thing.
+.TP
+.B \fBz\fP
+Zoom: change window size. Alternates between the 3 sizes: \fB\-small\fP,
+\fB\-medium\fP, \fB\-large\fP\&.
+.UNINDENT
+.\" other sections we might want, uncomment as needed.
+.
+.SH FILES
+.INDENT 0.0
+.TP
+.B \fB$HOME/.hcalc.cfg\fP
+Config file. This is a binary file, not human\-readable, and not
+portable across architectures. It gets read on startup (unless
+\fB\-default\fP is given) and written on exit. It stores the
+number base, window size (as set on the command line),
+the number that was displayed on exit, the contents of the
+\fISTO\fP memory, and the \fB\-quiet\fP flag.
+.sp
+Some care is taken to make sure a config file from a different
+architecture won\(aqt be used.
+.sp
+Since the config file isn\(aqt human\-readable, an easy way to
+create one is to run \fBhcalc\fP with \fB\-default\fP plus your preferred
+options. Example:
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+hcalc \-default \-quiet \-large \-hex
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+\&...which will kill any existing config file, and create a new one
+that stores the options you gave. Now when you run \fBhcalc\fP with
+no options, it will start up in hex mode, in a large window, and won\(aqt
+ring the bell.
+.sp
+An even easier way is just to run \fBhcalc\fP and use the controls to
+set the number base, size, and quiet flag. These settings automatically
+get saved to the config file.
+.UNINDENT
+.SH ENVIRONMENT
+.INDENT 0.0
+.TP
+.B \fBHOME\fP
+Config file is searched for here. If this is not set, or can\(aqt be
+read, no config file will be read or written.
+.TP
+.B \fBDISPLAY\fP
+X display to use.
+.UNINDENT
+.\" EXIT STATUS
+.
+.\" ===========
+.
+.\" BUGS
+.
+.\" ====
+.
+.\" EXAMPLES
+.
+.\" ========
+.
+.SH COPYRIGHT
+.sp
+\fBhcalc\fP is released under the terms of the GNU GPL.
+.SH AUTHORS
+.sp
+\fBhcalc\fP was originally written by DJ Delorie, modified by
+Theodore Kilgore, and modified again by B. Watson, who also
+wrote this man page.
+.SH SEE ALSO
+.sp
+\fBxcalc\fP(1)
+.\" Generated by docutils manpage writer.
+.
diff --git a/hcalc.c b/hcalc.c
new file mode 100644
index 0000000..ba111ba
--- /dev/null
+++ b/hcalc.c
@@ -0,0 +1,68 @@
+/* Copyright 1998 DJ Delorie <dj@delorie.com>
+ Distributed under the terms of the GNU GPL
+ http://www.delorie.com/store/hcalc/
+ Revisions copyright 2007,
+ Theodore Kilgore <kilgota@auburn.edu>
+ More revisions copyright 2023, B. Watson <urchlay@slackware.uk>
+*/
+#include <stdlib.h>
+#include <string.h>
+#include "hcalc.h"
+
+char *self;
+
+void version(void) {
+ printf("%s %s\n", SELF, VERSION);
+ exit(0);
+}
+
+void usage(const char *self, const char *msg) {
+ if(msg) fprintf(stderr, "%s: %s\n", self, msg);
+ printf("%s %s\nUsage: %s [-default] [-small|-medium|-large] [-dec|-hex|-oct|-bin] [-quiet] [--version] [--help]\n", SELF, VERSION, self);
+ exit(msg != NULL);
+}
+
+int
+main(int argc, char **argv)
+{
+ self = argv[0];
+
+ setbuf(stdout, 0);
+
+ if(argc >= 2 && strcmp(argv[1], "-default") == 0) {
+ /* don't load the config file */
+ } else {
+ load_config();
+ }
+ atexit(save_config);
+
+ while(argv++, --argc) {
+ if(strcmp(*argv, "-small") == 0)
+ winsize = 0;
+ else if(strcmp(*argv, "-medium") == 0)
+ winsize = 1;
+ else if(strcmp(*argv, "-large") == 0)
+ winsize = 2;
+ else if(strcmp(*argv, "-dec") == 0)
+ base = 10;
+ else if(strcmp(*argv, "-hex") == 0)
+ base = 16;
+ else if(strcmp(*argv, "-oct") == 0)
+ base = 8;
+ else if(strcmp(*argv, "-bin") == 0)
+ base = 2;
+ else if(strcmp(*argv, "-quiet") == 0)
+ quiet = 1;
+ else if(strcmp(*argv, "--help") == 0)
+ usage(self, NULL);
+ else if(strcmp(*argv, "--version") == 0)
+ version();
+ else if(strcmp(*argv, "-default") == 0)
+ { /* do nothing */ }
+ else usage(self, "Invalid command-line option %s");
+ }
+
+ setup_x();
+ load_pixmaps();
+ process_input();
+}
diff --git a/hcalc.h b/hcalc.h
new file mode 100644
index 0000000..db70249
--- /dev/null
+++ b/hcalc.h
@@ -0,0 +1,62 @@
+/* Copyright 1998 DJ Delorie <dj@delorie.com>
+ Distributed under the terms of the GNU GPL
+ http://www.delorie.com/store/hcalc/
+ Revisions copyright 2007,
+ Theodore Kilgore <kilgota@auburn.edu>
+ More revisions copyright 2023, B. Watson <urchlay@slackware.uk>
+*/
+
+#define SELF "HCalc"
+#define VERSION "1.2u1"
+
+#include <stdio.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/keysym.h>
+#include <X11/Xatom.h>
+
+extern Display *display;
+extern int screen;
+extern Visual *visual;
+extern Colormap cmap;
+extern Window window;
+extern Window rootwin;
+extern GC gc;
+extern Atom wm_protocols_atom;
+extern Atom delete_atom;
+extern Atom paste_atom;
+extern XEvent event;
+
+extern Pixmap face;
+extern Pixmap chars;
+
+extern int base;
+extern int bit_on;
+extern int bit_off;
+
+extern int char_to_x[256];
+extern char charmap[];
+
+extern int widths[3];
+extern int heights[3];
+extern int winsize;
+extern int scale_factor;
+
+extern double value, saved, stored;
+extern int quiet;
+
+void set_bits(int b);
+void set_string(char *s);
+void redraw();
+void key(char c);
+void button(int b, int x, int y);
+void complete_paste(unsigned char *s, int n);
+void send_current_display();
+void setup_x(void);
+void load_pixmaps(void);
+void process_input();
+void load_config(void);
+void save_config(void);
+void show_value();
+
+#define MAXCHARS 15
diff --git a/hcalc.rst b/hcalc.rst
new file mode 100644
index 0000000..ef7a715
--- /dev/null
+++ b/hcalc.rst
@@ -0,0 +1,251 @@
+.. RST source for hcalc(1) man page. Convert with:
+.. rst2man.py hcalc.rst > hcalc.1
+
+.. |version| replace:: 1.2u1
+.. |date| date::
+
+=====
+hcalc
+=====
+
+------------------------
+graphical hex calculator
+------------------------
+
+:Manual section: 1
+:Manual group: Urchlay's Misc Stuff
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+hcalc [*-default*] [*-small* | *-medium* | *-large*] [*-dec* | *-hex* | *-oct* | *-bin* ] [*-quiet*] [*--version*] [*--help*]
+
+DESCRIPTION
+===========
+
+**hcalc** is a small (137x174 pixels minimum) TI Programmer II
+semi-clone for Unix/X11 and Windows 95/NT. It doesn't take up much
+space, and supports decimal, hex, binary, and octal modes.
+
+**hcalc** is operated with the mouse and/or keyboard. See **MOUSE** and
+**KEYBOARD** sections, below.
+
+OPTIONS
+=======
+
+Options listed as (persistent) get saved to the config file, so
+they'll still apply the next time **hcalc** is started. This applies
+not only to command-line arguments; the settings get saved if they're
+changed via the mouse or keyboard, too.
+
+**-small**
+ Display in a 125x147 window (persistent).
+
+**-medium**
+ Display in a 250x294 window (persistent).
+
+**-large**
+ Display in a 500x588 window (persistent). This is the default.
+
+**-dec**
+ Start up in decimal mode (persistent). This is the default.
+
+**-hex**
+ Start up in hexadecimal mode (persistent).
+
+**-oct**
+ Start up in octal mode (persistent).
+
+**-bin**
+ Start up in binary mode (persistent).
+
+**-default**
+ Do not read the config file on startup. *NOTE:* This option must
+ be the first on the command line, or it will be ignored!
+
+**-quiet**
+ Do not ring the X bell on invalid input (persistent).
+
+--version Output version number and exit.
+
+--help
+ Output usage string and exit.
+
+DISPLAY
+=======
+
+The numeric display is limited to 15 digits in decimal, hex, or octal
+base. In binary mode, it displays 32 bits, but uses narrow "ticks"
+rather than 0 and 1.
+
+In hex mode, the number in the display will always be prefixed with
+"0x". In octal mode, it will always be prefixed with "0". In decimal
+mode, there is no prefix.
+
+In case of error (e.g. division by zero), the display will show a
+lowercase "f" in decimal mode, or only the prefix in hex or octal
+mode, or all 0 bits in binary mode. When this happens, you may have to
+press **CLR** or **Escape** to recover.
+
+MOUSE
+=====
+
+Mouse operation is simple: for the most part, just click on the
+buttons to press them.
+
+There's no *%* button for the modulus operator, but you can
+right-click on the *÷* (division) key.
+
+Right-clicking (or any button other than 1) on the *CLR* key exits
+**hcalc**.
+
+For the numeric display, clicking button 1 (usually the left one)
+copies the number to the X selection buffer. Clicking any other
+button pastes from X, but beware: pasting anything but a number in
+the current base might have unexpected effects, because all pasted
+characters are treated as keystrokes (so, e.g. pasting a capital Q
+quits the application). This can be useful, e.g. if you paste "2+2=",
+**hcalc** will display "4".
+
+KEYBOARD
+========
+
+**0-9**, **a-f**
+ Digits. Lowercase only for the hex digits. Entering digits
+ larger than the current number base is impossible (e.g. hex digits
+ when in decimal mode, or digits other than 0 or 1 in binary mode) and
+ will be ignored.
+
+**+** **-** **\*** **x** **/** **%**
+ Arithmetic: addition, subtraction, multiplication, division, modulus. Note that
+ **x** is the same as **\***.
+
+**.**
+ Decimal point. Only works in decimal mode (base 10); other bases
+ are integer-only.
+
+**_**
+ Invert sign. The *+/-* key.
+
+**=** **Enter**
+ The *=* key (equals).
+
+**&** **|** **^** **~**
+ Boolean operations. AND, OR, XOR, NOT (unary).
+
+**<** **>**
+ Bit shifts, unary. Left 1 bit, right 1 bit.
+
+**S**
+ *SHF* key: shift left/right by some number of bits (binary
+ operation, like addition). Shifts left for positive
+ numbers and right for negative. This is less confusing
+ than it sounds: 1 shifted left once is 2, -1 shifted right
+ once in -2.
+
+**Backspace** **Delete**
+ *DEL* key: delete the rightmost digit.
+
+**C** **Escape**
+ *CLR* key: clears the number.
+
+**D** **H** **O** **B**
+ Set the number base to decimal, hex, octal, or binary. The
+ number currently displayed is converted into the new base.
+ These are capital letters (hold down Shift).
+
+**F1** **F2** **F3** **F4**
+ Same as **D** **H** **O** **B**.
+
+**[** **]** **}**
+ *STO* (store number), *RCL* (recall stored number), *SUM*
+ (add current number to stored number). *STO*, *RCL*, and *SUM* are
+ the same as *M*, *MR*, and *M+* on 'pocket' calculators.
+
+**^C**
+ Copy the current number to the X selection
+ buffer. Same as clicking mouse button 1 (usually left) on the number.
+
+**^V**
+ Paste from the X selection buffer.
+ Same as clicking a mouse button other than 1 (right-clicking) on the number.
+
+**q**
+ Quiet. Toggles the audible bell.
+
+**Q** **^Q**
+ Quit **hcalc**. Capital letter, so press Shift. Control-Q does
+ the same thing.
+
+**z**
+ Zoom: change window size. Alternates between the 3 sizes: **-small**,
+ **-medium**, **-large**.
+
+.. other sections we might want, uncomment as needed.
+
+FILES
+=====
+
+**$HOME/.hcalc.cfg**
+ Config file. This is a binary file, not human-readable, and not
+ portable across architectures. It gets read on startup (unless
+ **-default** is given) and written on exit. It stores the
+ number base, window size (as set on the command line),
+ the number that was displayed on exit, the contents of the
+ *STO* memory, and the **-quiet** flag.
+
+ Some care is taken to make sure a config file from a different
+ architecture won't be used.
+
+ Since the config file isn't human-readable, an easy way to
+ create one is to run **hcalc** with **-default** plus your preferred
+ options. Example::
+
+ hcalc -default -quiet -large -hex
+
+ ...which will kill any existing config file, and create a new one
+ that stores the options you gave. Now when you run **hcalc** with
+ no options, it will start up in hex mode, in a large window, and won't
+ ring the bell.
+
+ An even easier way is just to run **hcalc** and use the controls to
+ set the number base, size, and quiet flag. These settings automatically
+ get saved to the config file.
+
+ENVIRONMENT
+===========
+
+**HOME**
+ Config file is searched for here. If this is not set, or can't be
+ read, no config file will be read or written.
+
+**DISPLAY**
+ X display to use.
+
+.. EXIT STATUS
+.. ===========
+
+.. BUGS
+.. ====
+
+.. EXAMPLES
+.. ========
+
+COPYRIGHT
+=========
+
+**hcalc** is released under the terms of the GNU GPL.
+
+AUTHORS
+=======
+
+**hcalc** was originally written by DJ Delorie, modified by
+Theodore Kilgore, and modified again by B. Watson, who also
+wrote this man page.
+
+SEE ALSO
+========
+
+**xcalc**\(1)
diff --git a/icons/16x16/apps/hcalc.png b/icons/16x16/apps/hcalc.png
new file mode 100644
index 0000000..9642bef
--- /dev/null
+++ b/icons/16x16/apps/hcalc.png
Binary files differ
diff --git a/icons/22x22/apps/hcalc.png b/icons/22x22/apps/hcalc.png
new file mode 100644
index 0000000..e1af156
--- /dev/null
+++ b/icons/22x22/apps/hcalc.png
Binary files differ
diff --git a/icons/32x32/apps/hcalc.png b/icons/32x32/apps/hcalc.png
new file mode 100644
index 0000000..184643f
--- /dev/null
+++ b/icons/32x32/apps/hcalc.png
Binary files differ
diff --git a/icons/48x48/apps/hcalc.png b/icons/48x48/apps/hcalc.png
new file mode 100644
index 0000000..952df95
--- /dev/null
+++ b/icons/48x48/apps/hcalc.png
Binary files differ
diff --git a/icons/64x64/apps/hcalc.png b/icons/64x64/apps/hcalc.png
new file mode 100644
index 0000000..a6b1922
--- /dev/null
+++ b/icons/64x64/apps/hcalc.png
Binary files differ
diff --git a/images.c b/images.c
new file mode 100644
index 0000000..888db6d
--- /dev/null
+++ b/images.c
@@ -0,0 +1,60 @@
+/* Copyright 1998 DJ Delorie <dj@delorie.com>
+ Distributed under the terms of the GNU GPL
+ http://www.delorie.com/store/hcalc/
+ Revisions copyright 2007,
+ Theodore Kilgore <kilgota@auburn.edu>
+ More revisions copyright 2023, B. Watson <urchlay@slackware.uk>
+*/
+#include "hcalc.h"
+#include <X11/xpm.h>
+
+#define xpm face0_data
+#include "xpm/face.xpm"
+#undef xpm
+#define xpm face1_data
+#include "xpm/face.250.xpm"
+#undef xpm
+#define xpm face2_data
+#include "xpm/face.500.xpm"
+#undef xpm
+
+#define xpm chars0_data
+#include "xpm/chars.xpm"
+#undef xpm
+#define xpm chars1_data
+#include "xpm/chars.250.xpm"
+#undef xpm
+#define xpm chars2_data
+#include "xpm/chars.500.xpm"
+#undef xpm
+
+static char **faces[3] = { face0_data, face1_data, face2_data };
+static char **charss[3] = { chars0_data, chars1_data, chars2_data };
+static int c_factors[3] = { 6, 12, 24 };
+
+Pixmap face;
+Pixmap chars;
+
+char charmap[] = " 0123456789ABCDEF-x,.ro+";
+int char_to_x[256];
+
+void
+load_pixmaps(void)
+{
+ int i, c;
+
+ XpmAttributes attr;
+ attr.valuemask = 0;
+ XpmCreatePixmapFromData(display, window, faces[winsize], &face, 0, &attr);
+ XpmCreatePixmapFromData(display, window, charss[winsize], &chars, 0, &attr);
+
+ for (i=0; i<256; i++)
+ {
+ char_to_x[i] = 0;
+ for (c=0; charmap[c]; c++)
+ if (charmap[c] == i) {
+ char_to_x[i] = c * c_factors[winsize];
+ /* printf("char_to_x[%d] ('%c') = %d\n", i, i, c*C_FACTOR); */
+ }
+ }
+}
diff --git a/input.c b/input.c
new file mode 100644
index 0000000..c46a92a
--- /dev/null
+++ b/input.c
@@ -0,0 +1,517 @@
+/* Copyright 1998 DJ Delorie <dj@delorie.com>
+ Distributed under the terms of the GNU GPL
+ http://www.delorie.com/store/hcalc/
+ Revisions copyright 2007,
+ Theodore Kilgore <kilgota@auburn.edu>
+ More revisions copyright 2023, B. Watson <urchlay@slackware.uk>
+*/
+#include "hcalc.h"
+#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+char pending_op = 0;
+int making_number = 0;
+int base = 10;
+int quiet = 0;
+
+#define MAXIN 40
+
+char input_buf[MAXIN];
+int iptr;
+double value, saved, stored=0;
+
+void paste();
+void copy();
+
+void bell(void) {
+ if(!quiet)
+ XBell(display, 0);
+}
+
+void
+convert_number()
+{
+ char *ip = input_buf;
+ double scale = 1;
+ int sign = +1;
+
+ if (*ip == '-')
+ sign = -1;
+ value = 0;
+ while (*++ip)
+ {
+ if (*ip == '.')
+ break;
+ if (*ip >= '0' && *ip <= '9')
+ {
+ value *= base;
+ value += *ip-'0';
+ }
+ if (*ip >= 'a' && *ip <= 'f')
+ {
+ value *= base;
+ value += *ip-'a'+10;
+ }
+ }
+ if (*ip)
+ while (*++ip)
+ {
+ if (*ip >= '0' && *ip <= '9')
+ {
+ scale *= base;
+ value += (*ip-'0')/scale;
+ }
+ if (*ip >= 'a' && *ip <= 'f')
+ {
+ scale *= base;
+ value += (*ip-'a'+10)/scale;
+ }
+ }
+ value *= sign;
+}
+
+void
+show_value()
+{
+ char tmp[25], *tp;
+ char commas[40], *cp, *dp;
+ double v = value;
+
+ if (base == 2)
+ {
+ int q = (long long)v & 0xffffffffL;
+ set_bits(q);
+ return;
+ }
+
+ tmp[0] = ' ';
+ if (v < 0)
+ {
+ tmp[0] = '-';
+ v = -v;
+ }
+
+ if (base == 10)
+ {
+ sprintf(tmp+1, "%.14G", v);
+ if (strchr(tmp+1, 'E'))
+ sprintf(tmp+1, "%.9G", v);
+ if (tmp[14] == '.')
+ tmp[14] = 0;
+ }
+ else
+ {
+ static char tohex[] = "0123456789ABCDEF";
+ long long ll = (long long)v;
+ char *revptr;
+ tp = tmp+1;
+ if (base == 16)
+ {
+ *tp++ = '0';
+ *tp++ = 'x';
+ }
+ else if (base == 8)
+ *tp++ = '0';
+
+ revptr = tp;
+ do {
+ *tp++ = tohex[ll%base];
+ ll /= base;
+ } while (ll);
+ *tp-- = 0;
+ while (revptr < tp) {
+ char t = *revptr;
+ *revptr = *tp;
+ *tp = t;
+ tp--;
+ revptr++;
+ }
+ }
+
+ cp = commas+40;
+ tp = tmp+strlen(tmp);
+ dp = strchr(tmp, '.');
+ if (dp == 0)
+ dp = tp;
+
+ *--cp = 0;
+ while (tp>=tmp)
+ {
+ *--cp = *tp--;
+ switch (base)
+ {
+ case 10:
+ if (isdigit(cp[0]) && isdigit(cp[1]) && isdigit(cp[2]) && tp<dp
+ && tp>=tmp && isdigit(*tp))
+ *--cp = ',';
+ break;
+ case 16:
+ if (isxdigit(cp[0]) && isxdigit(cp[1])
+ && isxdigit(cp[2]) && isxdigit(cp[3])
+ && tp>=tmp && isxdigit(*tp))
+ *--cp = ',';
+ break;
+ }
+ }
+
+ if (strlen(cp) > 15)
+ set_string(tmp);
+ else
+ set_string(cp);
+}
+
+void
+end_number()
+{
+ if (!making_number)
+ return;
+ making_number = 0;
+ iptr = 0;
+
+ switch (pending_op)
+ {
+ case '+':
+ value = saved + value;
+ break;
+ case '-':
+ value = saved - value;
+ break;
+ case '*':
+ value = saved * value;
+ break;
+ case '/':
+ value = saved / value;
+ break;
+ case '%':
+ value = (long long)saved % (long long)value;
+ break;
+ case '&':
+ value = (long long)saved & (long long)value;
+ break;
+ case '|':
+ value = (long long)saved | (long long)value;
+ break;
+ case '^':
+ value = (long long)saved ^ (long long)value;
+ break;
+ case 'S': /* Shift. Positive means <<, negative means >> */
+ if (value < 0)
+ value = (long long)saved >> (long long)(-value);
+ else
+ value = (long long)saved << (long long)value;
+ break;
+ }
+ saved = value;
+ pending_op = 0;
+ show_value();
+}
+
+void
+start_number()
+{
+ if (making_number)
+ return;
+
+ iptr = 1;
+ input_buf[0] = ' ';
+ input_buf[1] = 0;
+ making_number = 1;
+}
+
+void
+key(char c)
+{
+ int v = c;
+ /* printf("key_number 0x%x\n", v); */
+
+ switch (c)
+ {
+ case 27:
+ case 'C':
+ making_number = 0;
+ iptr = 0;
+ pending_op = 0;
+ value = saved = 0;
+ set_string("");
+ show_value();
+ break;
+ case 'u':
+ if (making_number)
+ {
+ making_number = 0;
+ set_string("");
+ }
+ break;
+
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ v = c - 38;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ v -= '0';
+ if (v >= base || iptr == MAXIN-1)
+ bell();
+ else
+ {
+ start_number();
+ input_buf[iptr++] = c;
+ input_buf[iptr] = 0;
+ convert_number();
+ show_value();
+ }
+ break;
+ case '.':
+ if (strchr(input_buf, '.'))
+ {
+ bell();
+ break;
+ }
+ case ',':
+ if (iptr == 1 || iptr == MAXIN-1)
+ bell();
+ else
+ {
+ start_number();
+ input_buf[iptr++] = c;
+ input_buf[iptr] = 0;
+ convert_number();
+ show_value();
+ }
+ break;
+
+ case 8:
+ case 127:
+ if (iptr <= 1)
+ bell();
+ else
+ {
+ input_buf[--iptr] = 0;
+ convert_number();
+ show_value();
+ }
+ break;
+
+ case '_': /* The +/- key */
+ if (making_number)
+ {
+ if (input_buf[0] == '-')
+ input_buf[0] = ' ';
+ else
+ input_buf[0] = '-';
+ convert_number();
+ show_value();
+ }
+ else
+ {
+ value *= -1.0;
+ saved *= -1.0;
+ show_value();
+ }
+ break;
+
+ case 'D':
+ end_number();
+ base = 10;
+ show_value();
+ break;
+ case 'H':
+ end_number();
+ base = 16;
+ show_value();
+ break;
+ case 'O':
+ end_number();
+ base = 8;
+ show_value();
+ break;
+ case 'B':
+ end_number();
+ base = 2;
+ show_value();
+ break;
+
+ case 'x': /* Allow 'x' on keyboard to be used to enter '*' */
+ c = '*';
+ case '+':
+ case '-':
+ case '*':
+ case '/':
+ case '%':
+ case '^':
+ case '&':
+ case '|':
+ case 'S':
+ case '=':
+ end_number();
+ pending_op = c;
+ break;
+
+ case 13:
+ case 10:
+ end_number();
+ break;
+
+ case '~': /* Invert bits (one's complement) */
+ end_number();
+ value = ~ (long long)value;
+ saved = value;
+ show_value();
+ break;
+
+ case '<': /* SHL by one bit only */
+/* Modified by Keith Meehl to fix bit shift bug*/
+ end_number();
+ value = (long long)value << 1;
+ saved = value;
+ pending_op = 0;
+ show_value();
+ break;
+
+ case '>': /* SHR by one bit only */
+/* Modified by Keith Meehl to fix bit shift bug*/
+ end_number();
+ value = (long long)value >> 1;
+ saved = value;
+ pending_op = 0;
+ show_value();
+ break;
+
+ case '[': /* STO */
+ stored = value;
+ break;
+ case ']': /* RCL */
+ value = stored;
+ show_value();
+ making_number = 1;
+ iptr = 1;
+ input_buf[0] = ' ';
+ break;
+ case '}': /* SUM */
+ stored += value;
+ break;
+
+ case 'P': /* click on the display itself */
+ break;
+
+ case 3: /* ^C */
+ copy();
+ break;
+
+ case 22: /* ^V */
+ paste();
+ break;
+
+ case 'q':
+ quiet = !quiet;
+ break;
+
+ case 'Q':
+ case 17:
+ exit(0);
+
+ case 'z':
+ {
+ /* dirty hack method of changing window size:
+ re-execute ourselves with appropriate argument.
+ TODO: see if this leaks memory, fds, etc */
+ extern char *self;
+ char *args[4];
+
+ args[0] = self;
+
+ switch(winsize) {
+ case 0:
+ args[1] = "-medium";
+ break;
+ case 1:
+ args[1] = "-large";
+ break;
+ case 2:
+ args[1] = "-small";
+ break;
+ }
+
+ args[2] = NULL;
+
+ /* note that atexit() functions do NOT get called on execv() */
+ save_config();
+
+ XCloseDisplay(display);
+
+ execv(self, args);
+ }
+ }
+}
+
+static char *bmap[] = {
+ "PPPP\033", /* mouse copy and paste, CLR */
+ "DHOB\010", /* DEC, HEX, OCT, BIN, DEL */
+ "[]}<>", /* STO, RCL, SUM, <<, >> */
+ "Sdef/", /* SHF, D E F / */
+ "~abc*", /* INV, */
+ "|789-", /* OR, */
+ "&456+", /* AND, */
+ "^123=", /* XOR, */
+ "u0._=" /* CE, 0, . , +/-, = */
+};
+
+void
+copy()
+{
+ XSetSelectionOwner(display, XA_PRIMARY, window, event.xbutton.time);
+}
+
+void
+paste()
+{
+ XConvertSelection(display, XA_PRIMARY, XA_STRING, paste_atom, window,
+ event.xbutton.time);
+}
+
+void
+complete_paste(unsigned char *s, int n)
+{
+ int i;
+ for (i=0; i<n; i++)
+ key(s[i]);
+
+}
+
+void
+button(int b, int x, int y)
+{
+ x = (x-2)/(24 * scale_factor);
+ if (x < 0) x = 0;
+ if (x > 4) x = 4;
+ y = (y-1)/(16 * scale_factor);
+ if (y < 0) y = 0;
+ if (y > 8) y = 8;
+
+ if (bmap[y][x] == 27 && b == 3)
+ exit(0);
+
+ if (bmap[y][x] == 'P' && b == 1)
+ copy();
+ if (bmap[y][x] == 'P' && b != 1)
+ paste();
+
+ if(bmap[y][x] == '/' && b != 1)
+ key('%');
+ else
+ key(bmap[y][x]);
+ /* printf("bmap[%i][%i] and b=%i\n", y, x, b); */
+}
diff --git a/inst/usr/bin/hcalc b/inst/usr/bin/hcalc
new file mode 100755
index 0000000..b9168f3
--- /dev/null
+++ b/inst/usr/bin/hcalc
Binary files differ
diff --git a/inst/usr/doc/blah/CHANGES b/inst/usr/doc/blah/CHANGES
new file mode 100644
index 0000000..7cddba0
--- /dev/null
+++ b/inst/usr/doc/blah/CHANGES
@@ -0,0 +1,37 @@
+Version 1.2u1, 2024/01/02:
+--------------------------
+- Support original size (125x147), 2x (250x294), and 4x (500x588).
+- Recreate the 250x294 graphics by resizing without interpolation,
+ to give a "crisp and pixellated" look rather than blurry.
+- Change the build system back to make. This project is so simple
+ that I don't see any benefit in using cmake.
+- Add icons and .desktop files.
+- Tell the window manager not to allow resizing the window. The
+ app can't resize anyway, so trying to make the window bigger just
+ results in a confusing mess. Making it smaller works, but parts
+ of the UI get cut off so it's unusable. Probably, tiling window
+ managers will ignore this (not much I can do about that).
+- Fix a few -Wall warnings.
+- Fix a segfaulting bug. To reproduce, start up the old hcalc and
+ press Backspace 6 times (or so; eventually it will crash).
+- Add command-line options to control the window size (-small -medium
+ -large).
+- Add command line options to control the starting number base (-hex,
+ -dec, etc).
+- Add a man page. There was no documentation at all.
+- Change "q" to quit, to uppercase Q or control-Q. I kept exiting when
+ trying to type a 1.
+- Get rid of ^C = quit keystroke.
+- Add ^C and ^V keystrokes for copy and paste. Now hcalc is fully
+ functional without using the mouse.
+- Add modulus operation. % key, or right-click on / button.
+- Add C as a synonym for Escape (CLR key).
+- Add Delete as a synonym for backspace (DEL key).
+- Fix a bug: stop allowing hex digits a-f when in decimal mode.
+- Add ~/.hcalc.cfg, which holds the state of hcalc. Written on exit,
+ read on startup. Also add -default arg, to prevent reading this.
+- Add -quiet option to silence the X bell.
+- Allow changing the window size while running (toggle between the 3
+ sizes).
+- Add a 'make install' target, which will install the binary, icons,
+ man page, and .desktop file (with DESTDIR support for packagers).
diff --git a/inst/usr/doc/blah/README b/inst/usr/doc/blah/README
new file mode 100644
index 0000000..be32bfd
--- /dev/null
+++ b/inst/usr/doc/blah/README
@@ -0,0 +1,27 @@
+README for Urchlay's fork of hcalc
+----------------------------------
+
+This is a fork of hcalc with some fixes and enhancements.
+
+Original hcalc is by DJ Delorie, and can be found here:
+https://www.delorie.com/store/hcalc/
+This version dates back to the late 90s, when computer monitors had
+lower resolution. It uses a 125x147 window, which is pretty small and
+hard to read on a modern display (particularly a 4K one). It's also
+harder to click on the tiny buttons.
+
+Sometime around 2007, Theodore Kilgore forked hcalc and made some
+changes:
+- Increase the application's window size by 2x (from 125x147
+ to 250x294). This helps some with modern displays.
+- Make the window manager's close button work.
+- Change the build system from make to cmake.
+- Add a copy of the GPL as COPYING, since the original version
+ doesn't have it (though the site states that it's GPL).
+This was released as hcalc-1.2, and can be found here:
+https://github.com/jlec/hcalc/
+Also, this is the version packaged by Gentoo.
+
+In 2024, I (B. Watson, urchlay@slackware.uk) have made many further
+changes. See CHANGES for the list. See the man page for full
+documentation (something that was lacking in the previous releases).
diff --git a/inst/usr/doc/blah/TODO b/inst/usr/doc/blah/TODO
new file mode 100644
index 0000000..d60c774
--- /dev/null
+++ b/inst/usr/doc/blah/TODO
@@ -0,0 +1 @@
+- Cleaner way of switching window sizes at runtime.
diff --git a/inst/usr/man/man1/hcalc.1.gz b/inst/usr/man/man1/hcalc.1.gz
new file mode 100644
index 0000000..be7586d
--- /dev/null
+++ b/inst/usr/man/man1/hcalc.1.gz
Binary files differ
diff --git a/inst/usr/share/applications/hcalc.desktop b/inst/usr/share/applications/hcalc.desktop
new file mode 100644
index 0000000..10232fe
--- /dev/null
+++ b/inst/usr/share/applications/hcalc.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=HCalc
+Comment=Hex Calculator
+Exec=hcalc
+Icon=hcalc
+Terminal=false
+StartupNotify=false
+Categories=Science;Math
diff --git a/inst/usr/share/icons/hicolor/16x16/apps/hcalc.png b/inst/usr/share/icons/hicolor/16x16/apps/hcalc.png
new file mode 100644
index 0000000..9642bef
--- /dev/null
+++ b/inst/usr/share/icons/hicolor/16x16/apps/hcalc.png
Binary files differ
diff --git a/inst/usr/share/icons/hicolor/22x22/apps/hcalc.png b/inst/usr/share/icons/hicolor/22x22/apps/hcalc.png
new file mode 100644
index 0000000..e1af156
--- /dev/null
+++ b/inst/usr/share/icons/hicolor/22x22/apps/hcalc.png
Binary files differ
diff --git a/inst/usr/share/icons/hicolor/32x32/apps/hcalc.png b/inst/usr/share/icons/hicolor/32x32/apps/hcalc.png
new file mode 100644
index 0000000..184643f
--- /dev/null
+++ b/inst/usr/share/icons/hicolor/32x32/apps/hcalc.png
Binary files differ
diff --git a/inst/usr/share/icons/hicolor/48x48/apps/hcalc.png b/inst/usr/share/icons/hicolor/48x48/apps/hcalc.png
new file mode 100644
index 0000000..952df95
--- /dev/null
+++ b/inst/usr/share/icons/hicolor/48x48/apps/hcalc.png
Binary files differ
diff --git a/inst/usr/share/icons/hicolor/64x64/apps/hcalc.png b/inst/usr/share/icons/hicolor/64x64/apps/hcalc.png
new file mode 100644
index 0000000..a6b1922
--- /dev/null
+++ b/inst/usr/share/icons/hicolor/64x64/apps/hcalc.png
Binary files differ
diff --git a/keystrokes b/keystrokes
new file mode 100644
index 0000000..f8ea1c0
--- /dev/null
+++ b/keystrokes
@@ -0,0 +1,13 @@
+arithmetic: + - * (or x) /
+boolean: & | ^ (xor) S (shift) ~ (not)
+clear: escape
+numbers: 0-9 a-f .
+what does comma do?
+backspace
+invert: _ (aka +/-)
+set base: D H O B
+enter
+shift: < >
+memory: [ (STO), ] (RCL), } (SUM)
+paste: P
+quit: q (this should be Q or maybe ^q)
diff --git a/setupx.c b/setupx.c
new file mode 100644
index 0000000..f905776
--- /dev/null
+++ b/setupx.c
@@ -0,0 +1,167 @@
+/* Copyright 1998 DJ Delorie <dj@delorie.com>
+ Distributed under the terms of the GNU GPL
+ http://www.delorie.com/store/hcalc/
+ Revisions copyright 2007,
+ Theodore Kilgore <kilgota@auburn.edu>
+ More revisions copyright 2023, B. Watson <urchlay@slackware.uk>
+*/
+#include "hcalc.h"
+#include <stdlib.h>
+
+int widths[3] = { 125, 250, 500 };
+int heights[3] = { 147, 294, 588 };
+int winsize = 2;
+
+Display *display=0;
+int screen=0;
+Visual *visual=0;
+Colormap cmap=0;
+Window window=0;
+Window rootwin=0;
+GC gc=0;
+Atom wm_protocols_atom=0;
+Atom delete_atom=0;
+Atom paste_atom=0;
+XEvent event;
+
+int bit_on, bit_off;
+
+void
+setup_x(void)
+{
+ char *name = "hcalc";
+
+ if(winsize == 2)
+ scale_factor = 4;
+ else
+ scale_factor = winsize + 1;
+
+ XSizeHints size_hints;
+ XTextProperty xtp;
+ XSetWindowAttributes attributes;
+ XColor color;
+
+ display = XOpenDisplay(0);
+ screen = XDefaultScreen(display);
+ cmap = XDefaultColormap(display, screen);
+ visual = XDefaultVisual(display, screen);
+ rootwin = XDefaultRootWindow(display);
+ gc = XCreateGC(display, rootwin, 0, 0);
+
+ wm_protocols_atom = XInternAtom(display, "WM_PROTOCOLS", 0);
+ delete_atom = XInternAtom(display, "WM_DELETE_WINDOW", 0);
+ paste_atom = XInternAtom(display, "PASTE_DATA", 0);
+
+ size_hints.flags = PSize | PMinSize | PMaxSize;
+ size_hints.width = size_hints.min_width = size_hints.max_width = widths[winsize];
+ size_hints.height = size_hints.min_height = size_hints.max_height = heights[winsize];
+ size_hints.x = 0;
+ size_hints.y = 0;
+
+ window = XCreateWindow(display,
+ rootwin,
+ size_hints.x, size_hints.y,
+ size_hints.width, size_hints.height,
+ 0,
+ CopyFromParent, /* depth */
+ InputOutput,
+ CopyFromParent, /* visual */
+ 0, 0);
+
+ XSetWMNormalHints(display, window, &size_hints);
+
+ XStringListToTextProperty(&name, 1, &xtp);
+ XSetWMName(display, window, &xtp);
+ XFree(xtp.value);
+
+ XSetWMProtocols(display, window, &delete_atom, 1);
+
+ attributes.event_mask = ExposureMask | ButtonPressMask | KeyPressMask;
+ XChangeWindowAttributes(display, window, CWEventMask, &attributes);
+
+ XMapWindow(display, window);
+ XFlush(display);
+
+ color.red = 0x6666;
+ color.green = 0xffff;
+ color.blue = 0x6666;
+ color.flags = DoRed | DoGreen | DoBlue;
+ XAllocColor(display, cmap, &color);
+ bit_on = color.pixel;
+
+ color.red = 0x3333;
+ color.green = 0xcccc;
+ color.blue = 0x3333;
+ color.flags = DoRed | DoGreen | DoBlue;
+ XAllocColor(display, cmap, &color);
+ bit_off = color.pixel;
+}
+
+void
+process_input()
+{
+ char c;
+ KeySym keysym;
+ XTextProperty tprop;
+
+ show_value();
+
+ while (1)
+ {
+ XNextEvent(display, &event);
+ if (event.xany.window == window)
+ {
+ switch (event.type)
+ {
+ case Expose:
+ if (event.xexpose.count == 0)
+ redraw();
+ break;
+ case KeyPress:
+ if (XLookupString(&event.xkey, &c, 1, &keysym, 0) == 1)
+ {
+ key(c);
+ }
+ else
+ {
+ switch (keysym)
+ {
+ case XK_F1:
+ key('D');
+ break;
+ case XK_F2:
+ key('H');
+ break;
+ case XK_F3:
+ key('O');
+ break;
+ case XK_F4:
+ key('B');
+ break;
+ }
+ }
+ break;
+ case ButtonPress:
+ button(event.xbutton.button, event.xbutton.x, event.xbutton.y);
+ break;
+ case SelectionRequest:
+ send_current_display();
+ break;
+ case SelectionNotify:
+ if (event.xselection.property == paste_atom)
+ {
+ XGetTextProperty(display, window, &tprop, paste_atom);
+ complete_paste(tprop.value, tprop.nitems);
+ }
+ break;
+ }
+ if (event.type == ClientMessage
+ && event.xclient.data.l[0] == delete_atom)
+ {
+ /* printf( "Shutting down now!!!\n"); */
+ break;
+ }
+ }
+ }
+ XCloseDisplay(display);
+}
diff --git a/xpm/chars.250.xpm b/xpm/chars.250.xpm
new file mode 100644
index 0000000..4c9f9fb
--- /dev/null
+++ b/xpm/chars.250.xpm
@@ -0,0 +1,19 @@
+/* XPM */
+static char * xpm[] = {
+"290 14 2 1",
+" c #000000",
+". c #66FF66",
+" ...... .. ...... ...... .. .. .......... ...... .......... ...... ...... .. .. .... ",
+" ...... .. ...... ...... .. .. .......... ...... .......... ...... ...... .. .. .... ",
+" .. .. .... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ",
+" .. .. .... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ",
+" .. .... .. .. .. .. .. ........ .. .. .. .. .. .. ........ ........ ...... ........ ...... .. .. .. .. .... ...... .. ",
+" .. .... .. .. .. .. .. ........ .. .. .. .. .. .. ........ ........ ...... ........ ...... .. .. .. .. .... ...... .. ",
+" .. .. .. .. .... .... .......... .. ........ .. ...... ........ .. .. .. .. .. .. .. .. .. .. ...... .......... .. .. .. .. .. .. .......... ",
+" .. .. .. .. .... .... .......... .. ........ .. ...... ........ .. .. .. .. .. .. .. .. .. .. ...... .......... .. .. .. .. .. .. .......... ",
+" .... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .......... .. .. .. .. .. .. .. .. ",
+" .... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .......... .. .. .. .. .. .. .. .. ",
+" .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...... .. .. .. .. ",
+" .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ...... .. .. .. .. ",
+" ...... ...... .......... ...... .. ...... ...... .. ...... ...... ........ ........ ...... ........ ........ .. .. .. .. .. .. ...... ",
+" ...... ...... .......... ...... .. ...... ...... .. ...... ...... ........ ........ ...... ........ ........ .. .. .. .. .. .. ...... "};
diff --git a/xpm/chars.500.xpm b/xpm/chars.500.xpm
new file mode 100644
index 0000000..5fa31b1
--- /dev/null
+++ b/xpm/chars.500.xpm
@@ -0,0 +1,33 @@
+/* XPM */
+static char * xpm[] = {
+"580 28 2 1",
+" c #000000",
+". c #66FF66",
+" ............ .... ............ ............ .... .... .................... ............ .................... ............ ............ .... .... ........ ",
+" ............ .... ............ ............ .... .... .................... ............ .................... ............ ............ .... .... ........ ",
+" ............ .... ............ ............ .... .... .................... ............ .................... ............ ............ .... .... ........ ",
+" ............ .... ............ ............ .... .... .................... ............ .................... ............ ............ .... .... ........ ",
+" .... .... ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ",
+" .... .... ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ",
+" .... .... ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ",
+" .... .... ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ",
+" .... ........ .... .... .... .... .... ................ .... .... .... .... .... .... ................ ................ ............ ................ ............ .... .... .... .... ........ ............ .... ",
+" .... ........ .... .... .... .... .... ................ .... .... .... .... .... .... ................ ................ ............ ................ ............ .... .... .... .... ........ ............ .... ",
+" .... ........ .... .... .... .... .... ................ .... .... .... .... .... .... ................ ................ ............ ................ ............ .... .... .... .... ........ ............ .... ",
+" .... ........ .... .... .... .... .... ................ .... .... .... .... .... .... ................ ................ ............ ................ ............ .... .... .... .... ........ ............ .... ",
+" .... .... .... .... ........ ........ .................... .... ................ .... ............ ................ .... .... .... .... .... .... .... .... .... .... ............ .................... .... .... .... .... .... .... .................... ",
+" .... .... .... .... ........ ........ .................... .... ................ .... ............ ................ .... .... .... .... .... .... .... .... .... .... ............ .................... .... .... .... .... .... .... .................... ",
+" .... .... .... .... ........ ........ .................... .... ................ .... ............ ................ .... .... .... .... .... .... .... .... .... .... ............ .................... .... .... .... .... .... .... .................... ",
+" .... .... .... .... ........ ........ .................... .... ................ .... ............ ................ .... .... .... .... .... .... .... .... .... .... ............ .................... .... .... .... .... .... .... .................... ",
+" ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .................... .... .... .... .... .... .... .... .... ",
+" ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .................... .... .... .... .... .... .... .... .... ",
+" ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .................... .... .... .... .... .... .... .... .... ",
+" ........ .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .................... .... .... .... .... .... .... .... .... ",
+" .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ............ .... .... .... .... ",
+" .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ............ .... .... .... .... ",
+" .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ............ .... .... .... .... ",
+" .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ............ .... .... .... .... ",
+" ............ ............ .................... ............ .... ............ ............ .... ............ ............ ................ ................ ............ ................ ................ .... .... .... .... .... .... ............ ",
+" ............ ............ .................... ............ .... ............ ............ .... ............ ............ ................ ................ ............ ................ ................ .... .... .... .... .... .... ............ ",
+" ............ ............ .................... ............ .... ............ ............ .... ............ ............ ................ ................ ............ ................ ................ .... .... .... .... .... .... ............ ",
+" ............ ............ .................... ............ .... ............ ............ .... ............ ............ ................ ................ ............ ................ ................ .... .... .... .... .... .... ............ "};
diff --git a/xpm/chars.xpm b/xpm/chars.xpm
new file mode 100644
index 0000000..4edc7a8
--- /dev/null
+++ b/xpm/chars.xpm
@@ -0,0 +1,12 @@
+/* XPM */
+static char *xpm[] = {
+"145 7 2 1",
+" c #000000000000", /* 24 */
+"- c #6666ffff6666", /* 113 */
+" --- - --- --- - - ----- --- ----- --- --- - - -- ",
+" - - -- - - - - - - - - - - - - - - - - - - ",
+" - -- - - - - - ---- - - - - - - ---- ---- --- ---- --- - - - - -- --- - ",
+" - - - - -- -- ----- - ---- - --- ---- - - - - - - - - - - --- ----- - - - - - - ----- ",
+" -- - - - - - - - - - - - - - - - - - - - ----- - - - - - - - - ",
+" - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - - - ",
+" --- --- ----- --- - --- --- - --- --- ---- ---- --- ---- ---- - - - - - - --- "};
diff --git a/xpm/face.250.xpm b/xpm/face.250.xpm
new file mode 100644
index 0000000..70c77be
--- /dev/null
+++ b/xpm/face.250.xpm
@@ -0,0 +1,304 @@
+/* XPM */
+static char * xpm[] = {
+"250 294 7 1",
+" c #999999",
+". c #FFFFFF",
+"+ c #000000",
+"@ c #FF0000",
+"# c #333333",
+"$ c #0066CC",
+"% c #CC9966",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" .......................................................................................................................................................................................... ",
+" .......................................................................................................................................................................................... ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@......@@@@..@@@@@@@@@@........@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@......@@@@..@@@@@@@@@@........@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@..@@..@@@@@@@@@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@..@@..@@@@@@@@@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@@@@@..@@@@@@@@@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@@@@@..@@@@@@@@@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@@@@@..@@@@@@@@@@........@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@@@@@..@@@@@@@@@@........@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@@@@@..@@@@@@@@@@..@@@@..@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@@@@@..@@@@@@@@@@..@@@@..@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@..@@..@@@@@@@@@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@..@@@@@@..@@..@@@@@@@@@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@......@@@@..........@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@......@@@@..........@@..@@@@@@..@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ..++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" .......................................................................................................................................................................................... ",
+" .......................................................................................................................................................................................... ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" $$##########################################$$$$$$##########################################$$$$$$##########################################$$$$$$##########################################$$ ########################################## ",
+" $$##########################################$$$$$$##########################################$$$$$$##########################################$$$$$$##########################################$$ ########################################## ",
+" $$$$####........####..........####......######$$$$$$####..######..##..........##..######..####$$$$$$######......######......####..........####$$$$$$####........######......####..######..####$$$$ ####........####..........##..############ ",
+" $$$$####........####..........####......######$$$$$$####..######..##..........##..######..####$$$$$$######......######......####..........####$$$$$$####........######......####..######..####$$$$ ####........####..........##..############ ",
+" $$$$####..######..##..##########..######..####$$$$$$####..######..##..##########..######..####$$$$$$####..######..##..######..######..########$$$$$$####..######..######..######....####..####$$$$ ####..######..##..##########..############ ",
+" $$$$####..######..##..##########..######..####$$$$$$####..######..##..##########..######..####$$$$$$####..######..##..######..######..########$$$$$$####..######..######..######....####..####$$$$ ####..######..##..##########..############ ",
+" $$$$####..######..##..##########..############$$$$$$####..######..##..############..##..######$$$$$$####..######..##..##############..########$$$$$$####..######..######..######..##..##..####$$$$ ####..######..##..##########..############ ",
+" $$$$####..######..##..##########..############$$$$$$####..######..##..############..##..######$$$$$$####..######..##..##############..########$$$$$$####..######..######..######..##..##..####$$$$ ####..######..##..##########..############ ",
+" $$$$####..######..##........####..############$$$$$$####..........##........########..########$$$$$$####..######..##..##############..########$$$$$$####........########..######..####....####$$$$ ####..######..##........####..############ ",
+" $$$$####..######..##........####..############$$$$$$####..........##........########..########$$$$$$####..######..##..##############..########$$$$$$####........########..######..####....####$$$$ ####..######..##........####..############ ",
+" $$$$####..######..##..##########..############$$$$$$####..######..##..############..##..######$$$$$$####..######..##..##############..########$$$$$$####..######..######..######..######..####$$$$ ####..######..##..##########..############ ",
+" $$$$####..######..##..##########..############$$$$$$####..######..##..############..##..######$$$$$$####..######..##..##############..########$$$$$$####..######..######..######..######..####$$$$ ####..######..##..##########..############ ",
+" $$$$####..######..##..##########..######..####$$$$$$####..######..##..##########..######..####$$$$$$####..######..##..######..######..########$$$$$$####..######..######..######..######..####$$$$ ####..######..##..##########..############ ",
+" $$$$####..######..##..##########..######..####$$$$$$####..######..##..##########..######..####$$$$$$####..######..##..######..######..########$$$$$$####..######..######..######..######..####$$$$ ####..######..##..##########..############ ",
+" $$$$####........####..........####......######$$$$$$####..######..##..........##..######..####$$$$$$######......######......########..########$$$$$$####........######......####..######..####$$$$ ####........####..........##..........#### ",
+" $$$$####........####..........####......######$$$$$$####..######..##..........##..######..####$$$$$$######......######......########..########$$$$$$####........######......####..######..####$$$$ ####........####..........##..........#### ",
+" $$##########################################$$$$$$##########################################$$$$$$##########################################$$$$$$##########################################$$ ########################################## ",
+" $$##########################################$$$$$$##########################################$$$$$$##########################################$$$$$$##########################################$$ ########################################## ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" ########################################## ########################################## ########################################## ########################################## ########################################## ",
+" ########################################## ########################################## ########################################## ########################################## ########################################## ",
+" ######......####..........####......###### ####........######......####..############ ######......####..######..##..######..#### ##################..########..############ ############..########..################## ",
+" ######......####..........####......###### ####........######......####..############ ######......####..######..##..######..#### ##################..########..############ ############..########..################## ",
+" ####..######..######..######..######..#### ####..######..##..######..##..############ ####..######..##..######..##....##....#### ################..########..############## ##############..########..################ ",
+" ####..######..######..######..######..#### ####..######..##..######..##..############ ####..######..##..######..##....##....#### ################..########..############## ##############..########..################ ",
+" ####..##############..######..######..#### ####..######..##..##########..############ ####..##########..######..##..##..##..#### ##############..########..################ ################..########..############## ",
+" ####..##############..######..######..#### ####..######..##..##########..############ ####..##########..######..##..##..##..#### ##############..########..################ ################..########..############## ",
+" ######......########..######..######..#### ####........####..##########..############ ######......####..######..##..##..##..#### ############..########..################## ##################..########..############ ",
+" ######......########..######..######..#### ####........####..##########..############ ######......####..######..##..##..##..#### ############..########..################## ##################..########..############ ",
+" ############..######..######..######..#### ####..####..####..##########..############ ############..##..######..##..######..#### ##############..########..################ ################..########..############## ",
+" ############..######..######..######..#### ####..####..####..##########..############ ############..##..######..##..######..#### ##############..########..################ ################..########..############## ",
+" ####..######..######..######..######..#### ####..######..##..######..##..############ ####..######..##..######..##..######..#### ################..########..############## ##############..########..################ ",
+" ####..######..######..######..######..#### ####..######..##..######..##..############ ####..######..##..######..##..######..#### ################..########..############## ##############..########..################ ",
+" ######......########..########......###### ####..######..####......####..........#### ######......######......####..######..#### ##################..########..############ ############..########..################## ",
+" ######......########..########......###### ####..######..####......####..........#### ######......######......####..######..#### ##################..########..############ ############..########..################## ",
+" ########################################## ########################################## ########################################## ########################################## ########################################## ",
+" ########################################## ########################################## ########################################## ########################################## ########################################## ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" ###################################### ###################################### ###################################### ###################################### ###################################### ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..######..##..........#### %%%%################........##################%%%%%%################..........################%%%%%%################..........################%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ######......####..######..##..........#### %%%%################........##################%%%%%%################..........################%%%%%%################..........################%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..##########..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..##########..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..........##........###### %%%%################..######..################%%%%%%################........##################%%%%%%################........##################%%%% ++++++++++++++++..........++++++++++++++++ ",
+" ######......####..........##........###### %%%%################..######..################%%%%%%################........##################%%%%%%################........##################%%%% ++++++++++++++++..........++++++++++++++++ ",
+" ############..##..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############..##..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##..############ %%%%################..######..################%%%%%%################..########################%%%%%%################..########################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..######..##..############ %%%%################........##################%%%%%%################..........################%%%%%%################..########################%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ######......####..######..##..############ %%%%################........##################%%%%%%################..........################%%%%%%################..########################%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..######..##..######..#### %%%%##################......##################%%%%%%################........##################%%%%%%##################......##################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..######..##..######..#### %%%%##################......##################%%%%%%################........##################%%%%%%##################......##################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########..######....####..##..######..#### %%%%################..######..################%%%%%%################..######..################%%%%%%################..######..################%%%% ++++++++++++++++..++++++..++++++++++++++++ ",
+" ########..######....####..##..######..#### %%%%################..######..################%%%%%%################..######..################%%%%%%################..######..################%%%% ++++++++++++++++..++++++..++++++++++++++++ ",
+" ########..######..##..##..##..######..#### %%%%################..######..################%%%%%%################..######..################%%%%%%################..########################%%%% ++++++++++++++++++..++..++++++++++++++++++ ",
+" ########..######..##..##..##..######..#### %%%%################..######..################%%%%%%################..######..################%%%%%%################..########################%%%% ++++++++++++++++++..++..++++++++++++++++++ ",
+" ########..######..####....####..##..###### %%%%################..........################%%%%%%################........##################%%%%%%################..########################%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ########..######..####....####..##..###### %%%%################..........################%%%%%%################........##################%%%%%%################..########################%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ########..######..######..####..##..###### %%%%################..######..################%%%%%%################..######..################%%%%%%################..########################%%%% ++++++++++++++++++..++..++++++++++++++++++ ",
+" ########..######..######..####..##..###### %%%%################..######..################%%%%%%################..######..################%%%%%%################..########################%%%% ++++++++++++++++++..++..++++++++++++++++++ ",
+" ########..######..######..######..######## %%%%################..######..################%%%%%%################..######..################%%%%%%################..######..################%%%% ++++++++++++++++..++++++..++++++++++++++++ ",
+" ########..######..######..######..######## %%%%################..######..################%%%%%%################..######..################%%%%%%################..######..################%%%% ++++++++++++++++..++++++..++++++++++++++++ ",
+" ######......####..######..######..######## %%%%################..######..################%%%%%%################........##################%%%%%%##################......##################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..######..######..######## %%%%################..######..################%%%%%%################........##################%%%%%%##################......##################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%##########################################%%%%%%##########################################%%%%%%##########################################%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%######################################%%%%%%%%%%######################################%%%%%%%%%%######################################%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......######......############ %%%%................++++++++++................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......######......############ %%%%................++++++++++................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..######..########## %%%%........................++................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..######..########## %%%%........................++................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..######..########## %%%%........................++................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..######..########## %%%%........................++................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##........############ %%%%......................++..................%%%%%%..................++++++..................%%%%%%..................++++++++................%%%% ++++++++++++++++..........++++++++++++++++ ",
+" ##########..######..##........############ %%%%......................++..................%%%%%%..................++++++..................%%%%%%..................++++++++................%%%% ++++++++++++++++..........++++++++++++++++ ",
+" ##########..######..##..####..############ %%%%....................++....................%%%%%%................++......++................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..####..############ %%%%....................++....................%%%%%%................++......++................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..######..########## %%%%....................++....................%%%%%%................++......++................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..######..########## %%%%....................++....................%%%%%%................++......++................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......####..######..########## %%%%....................++....................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......####..######..########## %%%%....................++....................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..######..##........###### %%%%................++......++................%%%%%%................++++++++++................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######......####..######..##........###### %%%%................++......++................%%%%%%................++++++++++................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##....####..##..######..#### %%%%................++......++................%%%%%%................++........................%%%%%%................++........................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##....####..##..######..#### %%%%................++......++................%%%%%%................++........................%%%%%%................++........................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##..##..##..##..######..#### %%%%................++......++................%%%%%%................++++++++..................%%%%%%................++........................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##..##..##..##..######..#### %%%%................++......++................%%%%%%................++++++++..................%%%%%%................++........................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..........##..####....##..######..#### %%%%................++++++++++................%%%%%%........................++................%%%%%%................++++++++..................%%%% ++++++++++++++++..........++++++++++++++++ ",
+" ####..........##..####....##..######..#### %%%%................++++++++++................%%%%%%........................++................%%%%%%................++++++++..................%%%% ++++++++++++++++..........++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%........................++................%%%%%%........................++................%%%%%%................++......++................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%........................++................%%%%%%........................++................%%%%%%................++......++................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%........................++................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%........................++................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++..++++++++++++++++++++ ",
+" ####..######..##..######..##........###### %%%%........................++................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##........###### %%%%........................++................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%........................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%........................................%%%%%%%%%%......................................%%%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%%%......................................%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%%%......................................%%%%%% ++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..####......####........###### %%%%....................++....................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..####......####........###### %%%%....................++....................%%%%%%..................++++++..................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%..................++++....................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%..................++++....................%%%%%%................++......++................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######..##..####..######..##..######..#### %%%%....................++....................%%%%%%........................++................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######..##..####..######..##..######..#### %%%%....................++....................%%%%%%........................++................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########..######..######..##........###### %%%%....................++....................%%%%%%....................++++..................%%%%%%....................++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########..######..######..##........###### %%%%....................++....................%%%%%%....................++++..................%%%%%%....................++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######..##..####..######..##..####..###### %%%%....................++....................%%%%%%..................++......................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ######..##..####..######..##..####..###### %%%%....................++....................%%%%%%..................++......................%%%%%%........................++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%....................++....................%%%%%%................++........................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..##..######..##..######..#### %%%%....................++....................%%%%%%................++........................%%%%%%................++......++................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..####......####..######..#### %%%%..................++++++..................%%%%%%................++++++++++................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ####..######..####......####..######..#### %%%%..................++++++..................%%%%%%................++++++++++................%%%%%%..................++++++..................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%%%%..........................................%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%%%......................................%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%%%%%%......................................%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++..........++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++..........++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++..........++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++..........++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%% ...................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%% ...................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%% .......................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%% .......................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......####..........########## %%%%..................++++++..................%%%%%%..........................................%%%% ............++............................ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......####..........########## %%%%..................++++++..................%%%%%%..........................................%%%% ............++............................ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..################## %%%%................++......++................%%%%%%..........................................%%%% ............++..........++................ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..################## %%%%................++......++................%%%%%%..........................................%%%% ............++..........++................ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..##########..################## %%%%................++....++++................%%%%%%..........................................%%%% ........++++++++++....++.................. ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..##########..################## %%%%................++....++++................%%%%%%..........................................%%%% ........++++++++++....++.................. ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..##########........############ %%%%................++..++..++................%%%%%%..........................................%%%% ............++......++.................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..##########........############ %%%%................++..++..++................%%%%%%..........................................%%%% ............++......++.................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..##########..################## %%%%................++++....++................%%%%%%....................++....................%%%% ............++....++....++++++++++........ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..##########..################## %%%%................++++....++................%%%%%%....................++....................%%%% ............++....++....++++++++++........ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..################## %%%%................++......++................%%%%%%..................++++++..................%%%% ................++........................ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ##########..######..##..################## %%%%................++......++................%%%%%%..................++++++..................%%%% ................++........................ ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......####..........########## %%%%..................++++++..................%%%%%%....................++....................%%%% .......................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ############......####..........########## %%%%..................++++++..................%%%%%%....................++....................%%%% .......................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%% .......................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################################## %%%%..........................................%%%%%%..........................................%%%% .......................................... ++++++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%% ...................................... ++++++++++++++++++++++++++++++++++++++ ",
+" ###################################### %%%%%%......................................%%%%%%%%%%......................................%%%%%% ...................................... ++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ",
+" ",
+" ",
+" "};
diff --git a/xpm/face.500.xpm b/xpm/face.500.xpm
new file mode 100644
index 0000000..671991b
--- /dev/null
+++ b/xpm/face.500.xpm
@@ -0,0 +1,598 @@
+/* XPM */
+static char * xpm[] = {
+"500 588 7 1",
+" c #999999",
+". c #FFFFFF",
+"+ c #000000",
+"@ c #FF0000",
+"# c #333333",
+"$ c #0066CC",
+"% c #CC9966",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@....@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@....@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@....@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@....@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@....@@@@@@@@@@@@....@@@@....@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....................@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....................@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....................@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@............@@@@@@@@....................@@@@....@@@@@@@@@@@@....@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" .................................................................................................................................................................................................................................................................................................................................................................................... ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............########....................########$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....######################## ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............########....................########$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....######################## ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............########....................########$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....######################## ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............########....................########$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############........########....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############........########....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############........########....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############........########....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....####....####....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....####....####....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....####....####....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....####....####....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####................########....########################$$$$$$$$$$$$########....................####................################....################$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########................################....############....########........########$$$$$$$$ ########....############....####................########....######################## ",
+" $$$$$$$$########....############....####................########....########################$$$$$$$$$$$$########....................####................################....################$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########................################....############....########........########$$$$$$$$ ########....############....####................########....######################## ",
+" $$$$$$$$########....############....####................########....########################$$$$$$$$$$$$########....................####................################....################$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########................################....############....########........########$$$$$$$$ ########....############....####................########....######################## ",
+" $$$$$$$$########....############....####................########....########################$$$$$$$$$$$$########....................####................################....################$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########................################....############....########........########$$$$$$$$ ########....############....####................########....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....########################$$$$$$$$$$$$########....############....####....########################....####....############$$$$$$$$$$$$########....############....####....############################....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....####################....############....########$$$$$$$$$$$$########....############....####....############....############....################$$$$$$$$$$$$########....############....############....############....############....########$$$$$$$$ ########....############....####....####################....######################## ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............################....################$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....................######## ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............################....################$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....................######## ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............################....################$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....................######## ",
+" $$$$$$$$########................########....................########............############$$$$$$$$$$$$########....############....####....................####....############....########$$$$$$$$$$$$############............############............################....################$$$$$$$$$$$$########................############............########....############....########$$$$$$$$ ########................########....................####....................######## ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" $$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$$$$$$$$$####################################################################################$$$$ #################################################################################### ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" ############............########....................########............############ ########................############............########....######################## ############............########....############....####....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" ############............########....................########............############ ########................############............########....######################## ############............########....############....####....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" ############............########....................########............############ ########................############............########....######################## ############............########....############....####....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" ############............########....................########............############ ########................############............########....######################## ############............########....############....####....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####........####........######## ################################....################....############################ ############################....################....################################ ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####........####........######## ################################....################....############################ ############################....################....################################ ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####........####........######## ################################....################....############################ ############################....################....################################ ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####........####........######## ################################....################....############################ ############################....################....################################ ",
+" ########....############################....############....############....######## ########....############....####....####################....######################## ########....####################....############....####....####....####....######## ############################....################....################################ ################################....################....############################ ",
+" ########....############################....############....############....######## ########....############....####....####################....######################## ########....####################....############....####....####....####....######## ############################....################....################################ ################################....################....############################ ",
+" ########....############################....############....############....######## ########....############....####....####################....######################## ########....####################....############....####....####....####....######## ############################....################....################################ ################################....################....############################ ",
+" ########....############################....############....############....######## ########....############....####....####################....######################## ########....####################....############....####....####....####....######## ############################....################....################################ ################################....################....############################ ",
+" ############............################....############....############....######## ########................########....####################....######################## ############............########....############....####....####....####....######## ########################....################....#################################### ####################################....################....######################## ",
+" ############............################....############....############....######## ########................########....####################....######################## ############............########....############....####....####....####....######## ########################....################....#################################### ####################################....################....######################## ",
+" ############............################....############....############....######## ########................########....####################....######################## ############............########....############....####....####....####....######## ########################....################....#################################### ####################################....################....######################## ",
+" ############............################....############....############....######## ########................########....####################....######################## ############............########....############....####....####....####....######## ########################....################....#################################### ####################################....################....######################## ",
+" ########################....############....############....############....######## ########....########....########....####################....######################## ########################....####....############....####....############....######## ############################....################....################################ ################################....################....############################ ",
+" ########################....############....############....############....######## ########....########....########....####################....######################## ########################....####....############....####....############....######## ############################....################....################################ ################################....################....############################ ",
+" ########################....############....############....############....######## ########....########....########....####################....######################## ########################....####....############....####....############....######## ############################....################....################################ ################################....################....############################ ",
+" ########################....############....############....############....######## ########....########....########....####################....######################## ########################....####....############....####....############....######## ############################....################....################################ ################################....################....############################ ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####....############....######## ################################....################....############################ ############################....################....################################ ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####....############....######## ################################....################....############################ ############################....################....################################ ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####....############....######## ################################....################....############################ ############################....################....################################ ",
+" ########....############....############....############....############....######## ########....############....####....############....####....######################## ########....############....####....############....####....############....######## ################################....################....############################ ############################....################....################################ ",
+" ############............################....################............############ ########....############....########............########....................######## ############............############............########....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" ############............################....################............############ ########....############....########............########....................######## ############............############............########....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" ############............################....################............############ ########....############....########............########....................######## ############............############............########....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" ############............################....################............############ ########....############....########............########....................######## ############............############............########....############....######## ####################################....################....######################## ########################....################....#################################### ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" #################################################################################### #################################################################################### #################################################################################### #################################################################################### #################################################################################### ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ############################################################################ ############################################################################ ############################################################################ ############################################################################ ############################################################################ ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....................######## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....................################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....................######## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....................################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....................######## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....................################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....................######## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....................################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....####################....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....####################....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....####################....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....####################....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....................####................############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################................####################################%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ############............########....................####................############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################................####################################%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ############............########....................####................############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################................####################################%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ############............########....................####................############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################................####################################%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ########################....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....######################## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....######################## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....######################## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....######################## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....######################## %%%%%%%%################################................####################################%%%%%%%%%%%%################################....................################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....############....######## %%%%%%%%####################################............####################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....############....######## %%%%%%%%####################################............####################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....############....######## %%%%%%%%####################################............####################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####....############....######## %%%%%%%%####################################............####################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############........########....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ################....############........########....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ################....############........########....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ################....############........########....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ################....############....####....####....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....####....####....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....####....####....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....####....####....####....############....######## %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....########........########....####....############ %%%%%%%%################################....................################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....########........########....####....############ %%%%%%%%################################....................################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....########........########....####....############ %%%%%%%%################################....................################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....########........########....####....############ %%%%%%%%################################....................################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....########....####....############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....########....####....############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....########....####....############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....########....####....############ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++....++++....++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ################....############....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ################....############....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ################....############....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%%%%%%################################....############....################################%%%%%%%% ++++++++++++++++++++++++++++++++....++++++++++++....++++++++++++++++++++++++++++++++ ",
+" ############............########....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....############....################ %%%%%%%%################################....############....################################%%%%%%%%%%%%################################................####################################%%%%%%%%%%%%####################################............####################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%%%%%%####################################################################################%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%%%%%%%%%%############################################################################%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............############............######################## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............############............######################## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............############............######################## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............############............######################## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####................######################## %%%%%%%%............................................++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++++++................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ####################....############....####................######################## %%%%%%%%............................................++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++++++................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ####################....############....####................######################## %%%%%%%%............................................++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++++++................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ####################....############....####................######################## %%%%%%%%............................................++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++++++................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....########....######################## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....########....######################## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....########....######################## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....########....######################## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....############....#################### %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####................############ %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####................############ %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####................############ %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############............########....############....####................############ %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####........########....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####........########....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####........########....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####........########....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....####....####....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....####....####....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....####....####....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....####....####....####....############....######## %%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%%%%%%................................++++................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....................####....########........####....############....######## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ########....................####....########........####....############....######## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ########....................####....########........####....############....######## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ########....................####....########........####....############....######## %%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%................................................++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++....++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####................############ %%%%%%%%................................................++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####................############ %%%%%%%%................................................++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####................############ %%%%%%%%................................................++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####................############ %%%%%%%%................................................++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%................................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%................................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%................................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%................................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%....................................++++++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%....................................++++++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%....................................++++++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%....................................++++++++........................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................................++++................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....####................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....####................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....####................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ################....############....############....####................############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%%%%%%........................................++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....########....############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++............................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....########....############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++............................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....########....############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++............................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############....####....########....############....####....########....############ %%%%%%%%........................................++++........................................%%%%%%%%%%%%....................................++++............................................%%%%%%%%%%%%................................................++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....####....############....####....############....######## %%%%%%%%........................................++++........................................%%%%%%%%%%%%................................++++................................................%%%%%%%%%%%%................................++++............++++................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########....############....######## %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########....############....######## %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########....############....######## %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########....############....########............########....############....######## %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%................................++++++++++++++++++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++++++++++++++++++++++++++++++++....................++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++........................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++........................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++........................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++........................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++....................++++................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++....................++++................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++....................++++................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++....................++++................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++........++++++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ................++++++++++++++++++++........++++.................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++........++++++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ................++++++++++++++++++++........++++.................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++........++++++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ................++++++++++++++++++++........++++.................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++........++++++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ................++++++++++++++++++++........++++.................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################................######################## %%%%%%%%................................++++....++++....++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++............++++........................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################................######################## %%%%%%%%................................++++....++++....++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++............++++........................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################................######################## %%%%%%%%................................++++....++++....++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++............++++........................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################................######################## %%%%%%%%................................++++....++++....++++................................%%%%%%%%%%%%....................................................................................%%%%%%%% ........................++++............++++........................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++++++........++++................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% ........................++++........++++........++++++++++++++++++++................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++++++........++++................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% ........................++++........++++........++++++++++++++++++++................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++++++........++++................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% ........................++++........++++........++++++++++++++++++++................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....####################....#################################### %%%%%%%%................................++++++++........++++................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% ........................++++........++++........++++++++++++++++++++................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ................................++++................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ................................++++................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ................................++++................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ####################....############....####....#################################### %%%%%%%%................................++++............++++................................%%%%%%%%%%%%....................................++++++++++++....................................%%%%%%%% ................................++++................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ########################............########....................#################### %%%%%%%%....................................++++++++++++....................................%%%%%%%%%%%%........................................++++........................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" #################################################################################### %%%%%%%%....................................................................................%%%%%%%%%%%%....................................................................................%%%%%%%% .................................................................................... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ############################################################################ %%%%%%%%%%%%............................................................................%%%%%%%%%%%%%%%%%%%%............................................................................%%%%%%%%%%%% ............................................................................ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/xpm/face.xpm b/xpm/face.xpm
new file mode 100644
index 0000000..85a50d3
--- /dev/null
+++ b/xpm/face.xpm
@@ -0,0 +1,157 @@
+/* XPM */
+static char *xpm[] = {
+"125 147 7 1",
+" c #000000000000", /* 24 */
+"- c #ffff00000000", /* 54 */
+"0 c #333333333333", /* 67 */
+"1 c #cccc99996666", /* 123 */
+"2 c #999999999999", /* 153 */
+"3 c #00006666cccc", /* 170 */
+"4 c #ffffffffffff", /* 239 */
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22224444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444442222222222222222222222222222",
+"22244 44222-------------------22222",
+"2224 422---------------------2222",
+"2224 422---444--4-----4444---2222",
+"2224 422--4---4-4-----4---4--2222",
+"2224 422--4-----4-----4---4--2222",
+"2224 422--4-----4-----4444---2222",
+"2224 422--4-----4-----4--4---2222",
+"2224 422--4---4-4-----4---4--2222",
+"2224 422---444--44444-4---4--2222",
+"2224 422---------------------2222",
+"22244 44222-------------------22222",
+"22224444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444442222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222",
+"22230000000000000000000003330000000000000000000003330000000000000000000003330000000000000000000003220000000000000000000002222",
+"22330044440044444004440003330040004044444040004003330004440004440044444003330044440004440040004003320044440044444040000002222",
+"22330040004040000040004003330040004040000040004003330040004040004000400003330040004000400044004003320040004040000040000002222",
+"22330040004040000040000003330040004040000004040003330040004040000000400003330040004000400040404003320040004040000040000002222",
+"22330040004044440040000003330044444044440000400003330040004040000000400003330044440000400040044003320040004044440040000002222",
+"22330040004040000040000003330040004040000004040003330040004040000000400003330040004000400040004003320040004040000040000002222",
+"22330040004040000040004003330040004040000040004003330040004040004000400003330040004000400040004003320040004040000040000002222",
+"22330044440044444004440003330040004044444040004003330004440004440000400003330044440004440040004003320044440044444044444002222",
+"22230000000000000000000003330000000000000000000003330000000000000000000003330000000000000000000003220000000000000000000002222",
+"22222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222",
+"22220000000000000000000002220000000000000000000002220000000000000000000002220000000000000000000002220000000000000000000002222",
+"22220004440044444004440002220044440004440040000002220004440040004040004002220000000004000040000002220000004000040000000002222",
+"22220040004000400040004002220040004040004040000002220040004040004044044002220000000040000400000002220000000400004000000002222",
+"22220040000000400040004002220040004040000040000002220040000040004040404002220000000400004000000002220000000040000400000002222",
+"22220004440000400040004002220044440040000040000002220004440040004040404002220000004000040000000002220000000004000040000002222",
+"22220000004000400040004002220040040040000040000002220000004040004040004002220000000400004000000002220000000040000400000002222",
+"22220040004000400040004002220040004040004040000002220040004040004040004002220000000040000400000002220000000400004000000002222",
+"22220004440000400004440002220040004004440044444002220004440004440040004002220000000004000040000002220000004000040000000002222",
+"22220000000000000000000002220000000000000000000002220000000000000000000002220000000000000000000002220000000000000000000002222",
+"22222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222000000000000000000022222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222000000000000000000022111000000000000000000011111000000000000000000011111000000000000000000011122 22222",
+"2222000000000000000000000211000000000000000000000111000000000000000000000111000000000000000000000112 2222",
+"2222000444004000404444400211000000004444000000000111000000004444400000000111000000004444400000000112 4 2222",
+"2222004000404000404000000211000000004000400000000111000000004000000000000111000000004000000000000112 2222",
+"2222004000004000404000000211000000004000400000000111000000004000000000000111000000004000000000000112 2222",
+"2222000444004444404444000211000000004000400000000111000000004444000000000111000000004444000000000112 44444 2222",
+"2222000000404000404000000211000000004000400000000111000000004000000000000111000000004000000000000112 2222",
+"2222004000404000404000000211000000004000400000000111000000004000000000000111000000004000000000000112 2222",
+"2222000444004000404000000211000000004444000000000111000000004444400000000111000000004000000000000112 4 2222",
+"2222000000000000000000000211000000000000000000000111000000000000000000000111000000000000000000000112 2222",
+"22222000000000000000000022111000000000000000000011111000000000000000000011111000000000000000000011122 22222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222000000000000000000022111000000000000000000011111000000000000000000011111000000000000000000011122 22222",
+"2222000000000000000000000211000000000000000000000111000000000000000000000111000000000000000000000112 2222",
+"2222000444004000404000400211000000000444000000000111000000004444000000000111000000000444000000000112 2222",
+"2222000040004400404000400211000000004000400000000111000000004000400000000111000000004000400000000112 4 4 2222",
+"2222000040004040404000400211000000004000400000000111000000004000400000000111000000004000000000000112 4 4 2222",
+"2222000040004004400404000211000000004444400000000111000000004444000000000111000000004000000000000112 4 2222",
+"2222000040004000400404000211000000004000400000000111000000004000400000000111000000004000000000000112 4 4 2222",
+"2222000040004000400040000211000000004000400000000111000000004000400000000111000000004000400000000112 4 4 2222",
+"2222000444004000400040000211000000004000400000000111000000004444000000000111000000000444000000000112 2222",
+"2222000000000000000000000211000000000000000000000111000000000000000000000111000000000000000000000112 2222",
+"22222000000000000000000022111000000000000000000011111000000000000000000011111000000000000000000011122 22222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222000000000000000000022111444444444444444444411111444444444444444444411114444444444444444444441122 22222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444111444444444444444444444112 2222",
+"222200000044400044400000021144444444 44444444111444444444 444444444111444444444 444444444112 2222",
+"2222000004000404000400000211444444444444 4444444411144444444 444 4444444411144444444 444 44444444112 2222",
+"2222000004000404000400000211444444444444 4444444411144444444 444 4444444411144444444 444 44444444112 2222",
+"222200000400040444400000021144444444444 444444444111444444444 444444444111444444444 44444444112 44444 2222",
+"22220000040004040040000002114444444444 444444444411144444444 444 44444444111444444444444 44444444112 2222",
+"22220000040004040004000002114444444444 444444444411144444444 444 44444444111444444444444 44444444112 2222",
+"22220000004440040004000002114444444444 4444444444111444444444 444444444111444444444 444444444112 2222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444111444444444444444444444112 2222",
+"22222000000000000000000022111444444444444444444411111444444444444444444411114444444444444444444441122 22222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222000000000000000000022111444444444444444444411111444444444444444444411114444444444444444444441122 22222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444111444444444444444444444112 2222",
+"222200044400400040444400021144444444 444 4444444411144444444 44444444111444444444 444444444112 2222",
+"222200400040440040400040021144444444 444 4444444411144444444 44444444444411144444444 444444444444112 4 2222",
+"222200400040404040400040021144444444 444 4444444411144444444 44444444411144444444 444444444444112 4 2222",
+"222200444440400440400040021144444444 44444444111444444444444 4444444411144444444 444444444112 44444 2222",
+"2222004000404000404000400211444444444444 44444444111444444444444 4444444411144444444 444 44444444112 4 2222",
+"2222004000404000404000400211444444444444 4444444411144444444 444 4444444411144444444 444 44444444112 4 2222",
+"2222004000404000404444000211444444444444 44444444111444444444 444444444111444444444 444444444112 2222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444111444444444444444444444112 2222",
+"22222000000000000000000022114444444444444444444411111444444444444444444411114444444444444444444441122 22222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222",
+"22222000000000000000000022111444444444444444444411111444444444444444444411111444444444444444444411122 22222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444111444444444444444444444112 2222",
+"22220040004004440044440002114444444444 4444444444111444444444 444444444111444444444 444444444112 2222",
+"2222004000404000404000400211444444444 444444444411144444444 444 4444444411144444444 444 44444444112 2222",
+"22220004040040004040004002114444444444 4444444444111444444444444 44444444111444444444444 44444444112 2222",
+"22220000400040004044440002114444444444 44444444441114444444444 4444444441114444444444 444444444112 2222",
+"22220004040040004040040002114444444444 4444444444111444444444 44444444444111444444444444 44444444112 2222",
+"22220040004040004040004002114444444444 444444444411144444444 44444444444411144444444 444 44444444112 2222",
+"2222004000400444004000400211444444444 44444444411144444444 44444444111444444444 444444444112 2222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444111444444444444444444444112 2222",
+"2222200000000000000000002211144444444444444444441111144444444444444444441111144444444444444444441112 2222",
+"2222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111112 44444 2222",
+"2222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111122 2222",
+"2222222222222222222222222211111111111111111111111111111111111111111111111111222222222222222222222222 2222",
+"2222222222222222222222222211111111111111111111111111111111111111111111111112222222222222222222222222 2222",
+"2222222222222222222222222211111111111111111111111111111111111111111111111112222222222222222222222222 44444 2222",
+"2222200000000000000000002211144444444444444444441111144444444444444444441112244444444444444444442222 2222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444112444444444444444444444222 2222",
+"2222000000444004444400000211444444444 444444444111444444444444444444444112444444 44444444444444222 2222",
+"222200000400040400000000021144444444 444 44444444111444444444444444444444112444444 44444 44444444222 2222",
+"222200000400000400000000021144444444 44 444444441114444444444444444444441124444 44 444444444222 2222",
+"222200000400000444400000021144444444 4 4 44444444111444444444444444444444112444444 444 4444444444222 2222",
+"222200000400000400000000021144444444 44 444444441114444444444 4444444444112444444 44 44 4444222 2222",
+"222200000400040400000000021144444444 444 44444444111444444444 44444444411244444444 444444444444222 2222",
+"2222000000444004444400000211444444444 4444444441114444444444 4444444444112444444444444444444444222 2222",
+"2222000000000000000000000211444444444444444444444111444444444444444444444112444444444444444444444222 2222",
+"22222000000000000000000022111444444444444444444411111444444444444444444411122444444444444444444422222 22222",
+"22222222222222222222222222111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222",
+"22222222222222222222222222211111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222",
+"22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"};