--- /dev/null
+Thomas Charbonnel <thomas@undata.org>
--- /dev/null
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 Library 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.
+\f
+ 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.)
+\f
+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.
+\f
+ 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.
+\f
+ 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
+\f
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 Library General
+Public License instead of this License.
--- /dev/null
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
--- /dev/null
+SUBDIRS = src pixmaps
--- /dev/null
+HDSPConfig is a GUI to control the Hammerfall HDSP Alsa Settings.
+Up to four hdsp cards are supported.
--- /dev/null
+AC_INIT(src/hdspconf.cxx)
+AM_INIT_AUTOMAKE(hdspconf, 1.0)
+
+AC_PROG_CXX
+AC_PROG_MAKE_SET
+AC_STDC_HEADERS
+AC_PATH_X
+
+AM_PATH_ALSA(0.9.0)
+
+dnl kernel header files
+AC_MSG_CHECKING(for kernel header files)
+AC_ARG_WITH(kernel,
+ [ --with-kernel=ver specify kernel version (for example 2.5.5-pre1)],
+ [kerneldir="$withval"], [kerneldir=""])
+if test "$kerneldir" != "" -a -r "/lib/modules/$kerneldir/build/include/sound"; then
+ kerneldir="/lib/modules/$kerneldir/build/include"
+ AC_MSG_RESULT($kerneldir)
+else
+ if test -z "$kerneldir"; then
+ AC_MSG_RESULT("not specified")
+ else
+ AC_MSG_RESULT("directory /lib/modules/$kerneldir/build/include/sound not found")
+ fi
+ kerneldir=""
+fi
+
+dnl path for sound/asound.h
+AC_MSG_CHECKING(for directory with ALSA kernel headers)
+AC_ARG_WITH(soundbase,
+ [ --with-soundbase=dir specify base directory with kernel sound headers (optional)],
+ [soundbasedir="$withval"], [soundbasedir="$kerneldir"])
+if test "$soundbasedir" != "" -a -r "$soundbasedir/sound" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$soundbasedir"
+ CFLAGS="$CFLAGS -I$soundbasedir"
+ AC_MSG_RESULT($ALSA_CFLAGS)
+else
+ if test "x$prefix" != xNONE; then
+ aprefix=$prefix
+ else
+ aprefix=$ac_default_prefix
+ fi
+ if test -z "$soundbasedir" -a -r "$aprefix/include/sound"; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$aprefix/include"
+ CFLAGS="$CFLAGS -I$aprefix/include"
+ AC_MSG_RESULT($ALSA_CFLAGS)
+ else
+ AC_MSG_RESULT("not specified - using C compiler defaults")
+ fi
+fi
+
+AC_PATH_PROG(FLTK_CONFIG, fltk-config, no)
+if test "$FLTK_CONFIG" = "no"; then
+ AC_MSG_ERROR(no fltk-config is found)
+fi
+FLTK_CXXFLAGS=`$FLTK_CONFIG $fltk_config_args --cxxflags`
+FLTK_LIBS=`$FLTK_CONFIG $fltk_config_args --ldflags`
+
+CXXFLAGS="$CXXFLAGS $ALSA_CFLAGS $FLTK_CXXFLAGS"
+LDFLAGS="$LDFLAGS $ALSA_LIBS $FLTK_LIBS"
+
+AC_OUTPUT(Makefile src/Makefile pixmaps/Makefile)
--- /dev/null
+#!/bin/bash
+
+if test "x$AUTOMAKE_DIR" = "x"; then
+ if test -d /usr/local/share/automake; then
+ AUTOMAKE_DIR=/usr/local/share/automake
+ fi
+ if test -d /usr/share/automake; then
+ AUTOMAKE_DIR="/usr/share/automake"
+ fi
+fi
+
+for f in install-sh mkinstalldirs missing; do
+ cp -av $AUTOMAKE_DIR/$f .
+done
+
+aclocal $ACLOCAL_FLAGS
+automake --foreign --add-missing --copy
+touch depcomp
+autoconf
+export CFLAGS='-O2 -Wall -pipe -g'
+echo "CFLAGS=$CFLAGS"
+echo "./configure $@"
+./configure $@
+unset CFLAGS
+make
--- /dev/null
+EXTRA_DIST = $(wildcard *.xpm)
--- /dev/null
+/* XPM */
+static char * alsalogo_xpm[] = {
+"50 50 398 2",
+" c None",
+". c #C0C0C0",
+"+ c #BEC1BE",
+"@ c #9EAD9D",
+"# c #889687",
+"$ c #7D8A7C",
+"% c #788477",
+"& c #9AA799",
+"* c #484D47",
+"= c #3A3F3A",
+"- c #515551",
+"; c #6C706B",
+"> c #8F958F",
+", c #ADAFAD",
+"' c #BCBCBB",
+") c #BEC0BE",
+"! c #606A60",
+"~ c #515651",
+"{ c #646664",
+"] c #828282",
+"^ c #A2A4A1",
+"/ c #EEEEED",
+"( c #FEFEFC",
+"_ c #A7B7A5",
+": c #7E8B7D",
+"< c #414542",
+"[ c #5C5E5C",
+"} c #BCBDBB",
+"| c #F6F6F4",
+"1 c #8B978A",
+"2 c #4A4F4A",
+"3 c #939493",
+"4 c #C7C9C6",
+"5 c #5C655C",
+"6 c #4C4D4C",
+"7 c #C3C4C2",
+"8 c #768176",
+"9 c #626262",
+"0 c #E9E9E7",
+"a c #93A291",
+"b c #5E625E",
+"c c #7B7B7A",
+"d c #838482",
+"e c #FCFCFB",
+"f c #F3F4F1",
+"g c #EBECE9",
+"h c #E6E6E4",
+"i c #E7E7E5",
+"j c #EEEEEC",
+"k c #FDFDFB",
+"l c #FAFAF9",
+"m c #CBCFCA",
+"n c #969796",
+"o c #737A73",
+"p c #787D77",
+"q c #7C817C",
+"r c #798079",
+"s c #727871",
+"t c #9D9F9D",
+"u c #EDEEEB",
+"v c #F8F8F6",
+"w c #D3D4D2",
+"x c #9DA09D",
+"y c #727672",
+"z c #CBCBCB",
+"A c #E5E6E4",
+"B c #F6F7F4",
+"C c #F4F5F2",
+"D c #DFE0DE",
+"E c #707370",
+"F c #C0C2C0",
+"G c #FCFCFA",
+"H c #ADB3AD",
+"I c #515452",
+"J c #939793",
+"K c #F1F1EF",
+"L c #BFC4BE",
+"M c #F4F5F4",
+"N c #FBFBFA",
+"O c #B7BAB7",
+"P c #A2A5A0",
+"Q c #F9FAF8",
+"R c #F5F5F3",
+"S c #BABDBA",
+"T c #727472",
+"U c #CBCECC",
+"V c #F5F5F4",
+"W c #E2E3E1",
+"X c #CFD4CE",
+"Y c #B5B7B4",
+"Z c #777777",
+"` c #303231",
+" . c #8F918F",
+".. c #A5A7A4",
+"+. c #B9BCB8",
+"@. c #CACDC9",
+"#. c #F7F7F5",
+"$. c #EFF0ED",
+"%. c #D0D0CE",
+"&. c #C1C2C1",
+"*. c #909690",
+"=. c #6D746D",
+"-. c #727972",
+";. c #98A398",
+">. c #BFC9BE",
+",. c #BDD0BC",
+"'. c #BCD1BE",
+"). c #C0D5C1",
+"!. c #C4D9C5",
+"~. c #C4D8C3",
+"{. c #C3D8C4",
+"]. c #C3D5C2",
+"^. c #C0D0C0",
+"/. c #B1BDB2",
+"(. c #878F87",
+"_. c #9CA59C",
+":. c #E0E7DF",
+"<. c #E6E9E5",
+"[. c #F0F0EE",
+"}. c #FBFBF9",
+"|. c #3A403A",
+"1. c #747673",
+"2. c #363936",
+"3. c #7F8B7F",
+"4. c #CCE0CC",
+"5. c #DAF2DB",
+"6. c #D8EFD7",
+"7. c #D7EED6",
+"8. c #D6ECD4",
+"9. c #D4EBD4",
+"0. c #D2E9D4",
+"a. c #D1E8D3",
+"b. c #CEE5CF",
+"c. c #CDE4CE",
+"d. c #CFE6D0",
+"e. c #CCE2CD",
+"f. c #BCCEBC",
+"g. c #BCC5BC",
+"h. c #DBDEDB",
+"i. c #F9F9F8",
+"j. c #8B8D8A",
+"k. c #606961",
+"l. c #B3C4B4",
+"m. c #D7EED8",
+"n. c #D3E9D4",
+"o. c #D4EAD4",
+"p. c #859185",
+"q. c #666F65",
+"r. c #C2D6C0",
+"s. c #1C1E1D",
+"t. c #B8CCBA",
+"u. c #535853",
+"v. c #454C46",
+"w. c #99A999",
+"x. c #CCE3CD",
+"y. c #5E675F",
+"z. c #8A958B",
+"A. c #C8DEC9",
+"B. c #C9DFCA",
+"C. c #CBE2CC",
+"D. c #CDDECE",
+"E. c #E5EEE5",
+"F. c #F6FBF4",
+"G. c #F9F9F7",
+"H. c #B7BAB6",
+"I. c #656E65",
+"J. c #D3EAD5",
+"K. c #D3E9D2",
+"L. c #6D776D",
+"M. c #525A52",
+"N. c #1C1E1C",
+"O. c #161717",
+"P. c #A0B1A1",
+"Q. c #4F5750",
+"R. c #6E776E",
+"S. c #C7DAC6",
+"T. c #C8DDC8",
+"U. c #D4E1D4",
+"V. c #F5F7F3",
+"W. c #CCCDCA",
+"X. c #3B3D3B",
+"Y. c #D5ECD5",
+"Z. c #CEE5D0",
+"`. c #CCDFCA",
+" + c #565B57",
+".+ c #191A1A",
+"++ c #9CAE9D",
+"@+ c #535854",
+"#+ c #C2D6C3",
+"$+ c #C7D9C5",
+"%+ c #C3DAC4",
+"&+ c #C2DAC4",
+"*+ c #CCDFCC",
+"=+ c #EFF3EE",
+"-+ c #C9CAC8",
+";+ c #9EAC9D",
+">+ c #D0E7D1",
+",+ c #D3EAD4",
+"'+ c #C1D3C0",
+")+ c #353735",
+"!+ c #505850",
+"~+ c #C0D4BF",
+"{+ c #727A73",
+"]+ c #676E68",
+"^+ c #535B54",
+"/+ c #303230",
+"(+ c #B6C9B7",
+"_+ c #C5D8C4",
+":+ c #CED8CC",
+"<+ c #D9DBD9",
+"[+ c #C1D3C1",
+"}+ c #D0E7D2",
+"|+ c #B5C6B3",
+"1+ c #202221",
+"2+ c #494F49",
+"3+ c #B8CAB7",
+"4+ c #C3D6C3",
+"5+ c #454B45",
+"6+ c #CAE1CB",
+"7+ c #C5DAC6",
+"8+ c #585F59",
+"9+ c #1F2020",
+"0+ c #ACBEAD",
+"a+ c #C4DAC4",
+"b+ c #C1D5BF",
+"c+ c #F2F2F0",
+"d+ c #D3E1D2",
+"e+ c #D0E6D1",
+"f+ c #ADBEAB",
+"g+ c #141515",
+"h+ c #484C48",
+"i+ c #A3B3A3",
+"j+ c #616962",
+"k+ c #858F85",
+"l+ c #B4C6B5",
+"m+ c #535754",
+"n+ c #0E0E0F",
+"o+ c #A1B3A2",
+"p+ c #C6D9C5",
+"q+ c #959995",
+"r+ c #CEE5CE",
+"s+ c #0A0B0B",
+"t+ c #545954",
+"u+ c #909D90",
+"v+ c #A0AF9F",
+"w+ c #454946",
+"x+ c #9EAD9F",
+"y+ c #565B56",
+"z+ c #070808",
+"A+ c #98A999",
+"B+ c #BACAB9",
+"C+ c #636763",
+"D+ c #EEF0ED",
+"E+ c #D8E8D8",
+"F+ c #9EB0A0",
+"G+ c #222423",
+"H+ c #646864",
+"I+ c #6E746E",
+"J+ c #B4C8B5",
+"K+ c #222424",
+"L+ c #828B83",
+"M+ c #676B67",
+"N+ c #1F201F",
+"O+ c #97A798",
+"P+ c #C7DBC6",
+"Q+ c #BFD3BD",
+"R+ c #99A698",
+"S+ c #8C8E8C",
+"T+ c #F8F8F7",
+"U+ c #F2F4F1",
+"V+ c #9EAFA0",
+"W+ c #0B0B0C",
+"X+ c #171817",
+"Y+ c #4B504B",
+"Z+ c #B6CAB8",
+"`+ c #AABAAA",
+" @ c #3E413F",
+".@ c #707670",
+"+@ c #1B1C1B",
+"@@ c #0D0D0E",
+"#@ c #95A596",
+"$@ c #C1D6C1",
+"%@ c #9CA79C",
+"&@ c #4D514E",
+"*@ c #EDEEEC",
+"=@ c #F6F7F5",
+"-@ c #E4ECE3",
+";@ c #CCDECB",
+">@ c #CADFCA",
+",@ c #CFE6D1",
+"'@ c #3C3E3C",
+")@ c #5E675E",
+"!@ c #383A38",
+"~@ c #6E786F",
+"{@ c #B3C6B4",
+"]@ c #555D55",
+"^@ c #484D49",
+"/@ c #869187",
+"(@ c #616861",
+"_@ c #4F534F",
+":@ c #828C81",
+"<@ c #C4D7C3",
+"[@ c #BBCDBB",
+"}@ c #919E91",
+"|@ c #575C58",
+"1@ c #A7AAA6",
+"2@ c #A2A3A1",
+"3@ c #E4E5E5",
+"4@ c #C3C8C1",
+"5@ c #CBE0CB",
+"6@ c #B2C2B2",
+"7@ c #AFC2AF",
+"8@ c #B5C9B6",
+"9@ c #9CA89C",
+"0@ c #97A498",
+"a@ c #93A093",
+"b@ c #BCCFBD",
+"c@ c #A8B8A9",
+"d@ c #A5B3A5",
+"e@ c #B2C4B2",
+"f@ c #B1C2B0",
+"g@ c #AAB7AA",
+"h@ c #C5D8C3",
+"i@ c #C5D1C3",
+"j@ c #BBC2B9",
+"k@ c #757B75",
+"l@ c #7B7F7B",
+"m@ c #EEEFEC",
+"n@ c #E7EBE6",
+"o@ c #BFC5BE",
+"p@ c #A2ABA2",
+"q@ c #B2BDB2",
+"r@ c #B9C8B9",
+"s@ c #BCCEBB",
+"t@ c #B9CAB8",
+"u@ c #B6C8B5",
+"v@ c #AEC0AD",
+"w@ c #AABCA9",
+"x@ c #A4B1A4",
+"y@ c #A2ADA2",
+"z@ c #889087",
+"A@ c #616260",
+"B@ c #7A7F7A",
+"C@ c #BEBEBD",
+"D@ c #CECFCD",
+"E@ c #E0E2DF",
+"F@ c #C1C5C0",
+"G@ c #979997",
+"H@ c #7E817F",
+"I@ c #6C736C",
+"J@ c #515451",
+"K@ c #333533",
+"L@ c #595D59",
+"M@ c #656B65",
+"N@ c #6E716F",
+"O@ c #959795",
+"P@ c #BCBFBC",
+"Q@ c #E3E7E3",
+"R@ c #F7F8F6",
+"S@ c #BCBDBA",
+"T@ c #EBECEA",
+"U@ c #A4ACA4",
+"V@ c #535653",
+"W@ c #B7B8B6",
+"X@ c #616B60",
+"Y@ c #F7F7F6",
+"Z@ c #E2E6E1",
+"`@ c #7D817E",
+" # c #838582",
+".# c #D1D2D0",
+"+# c #CACECA",
+"@# c #868A86",
+"## c #F3F4F2",
+"$# c #FAFBF9",
+"%# c #B1B4AF",
+"&# c #505450",
+"*# c #626562",
+"=# c #E0E0DF",
+"-# c #F5F6F3",
+";# c #B3B5B3",
+"># c #606260",
+",# c #818480",
+"'# c #959894",
+")# c #878B86",
+"!# c #696B69",
+"~# c #565756",
+"{# c #919491",
+"]# c #BDBDBC",
+"^# c #EAEAE8",
+"/# c #A7B7A6",
+"(# c #BFC3BE",
+"_# c #7F807F",
+":# c #7D7E7E",
+"<# c #808181",
+"[# c #929391",
+"}# c #B8BBB7",
+"|# c #7A7A7A",
+"1# c #93A292",
+". . . . . . . . . . . . . . . . . . . . + @ # $ % % $ # @ + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . & * = - ; > , ' ' , > ; - = * & . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . ) ! ~ { ] ^ / ( ( ( ( ( ( ( ( / ^ ] { ~ ! ) . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . _ : < [ } | ( ( ( ( ( ( ( ( ( ( ( ( ( ( | } [ < : _ . . . . . . . . . . . . ",
+". . . . . . . . . . . 1 2 3 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 3 2 1 . . . . . . . . . . . ",
+". . . . . . . . . . 5 6 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 6 5 . . . . . . . . . . ",
+". . . . . . . . . 8 9 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 9 8 . . . . . . . . . ",
+". . . . . . . a b c ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( c b a . . . . . . . ",
+". . . . . . . b d e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e d b . . . . . . . ",
+". . . . . . 8 c e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e c 8 . . . . . . ",
+". . . . . 5 9 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 9 5 . . . . . ",
+". . . . 1 6 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( f g h i j k ( ( ( ( ( ( ( 0 6 1 . . . . ",
+". . . _ 2 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( l m n o p q r s t u ( ( ( ( ( ( ( 7 2 _ . . . ",
+". . . : 3 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( v w x { y z A B C D E F G ( ( ( ( ( ( ( 3 : . . . ",
+". . ) < 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( H I J K ( ( ( ( ( ( G L M ( ( ( ( ( ( ( 4 < ) . . ",
+". . ! [ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( N O o P u ( ( ( ( ( ( ( ( ( k Q ( ( ( ( ( ( ( ( [ ! . . ",
+". . ~ } ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( R S T U ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( } ~ . . ",
+". & { | ( ( ( ( ( ( ( ( ( ( ( ( k V W X Y Z ` ...+.@.h #.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( | { & . ",
+". * ] ( ( ( ( ( ( ( ( ( $.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.( ( ( ( ( ( ( ( ( ( ( ( ] * . ",
+". |.^ ( ( ( ( ( ( ( ( R 1.2.3.4.5.6.7.8.9.0.0.0.0.a.b.c.c.c.d.e.f.g.h.( ( ( ( ( ( ( ( ( ( ( ( ^ |.. ",
+"+ - / ( ( ( ( ( ( i.j.k.l.m.9.n.o.8.8.p.q.r.s.t.0.u.v.w.x.y.z.x.A.B.C.D.E.F.( ( ( ( ( ( ( ( ( / - + ",
+"@ ; ( ( ( ( ( ( G.H.I.d.J.0.0.o.8.8.K.L.M.r.N.t.0.O.P.c.c.Q.R.C.A.A.A.S.T.U.V.e ( ( ( ( ( ( ( ( ; @ ",
+"# > ( ( ( ( ( ( W.X.Y.Z.0.0.0.o.8.8.`. +M.r.N.t.0..+++c.c.Q.@+#+A.A.A.$+%+&+*+=+( ( ( ( ( ( ( ( > # ",
+"$ , ( ( ( ( ( ( -+;+>+b.0.0.0.,+8.8.'+)+!+~+N.t.0.{+]+c.c.^+/+(+A.A.A.$+%+&+_+:+G ( ( ( ( ( ( ( , $ ",
+"% ' ( ( ( ( ( ( <+[+c.c.}+0.0.o.8.8.|+1+2+3+N.t.0.4+5+6+7+8+9+0+A.A.A.$+%+&+a+b+/ ( ( ( ( ( ( ( ' % ",
+"% ' ( ( ( ( ( ( c+d+c.c.e+0.0.0.n.8.f+g+h+i+N.t.0.0.j+k+l+m+n+o+A.A.A.$+%+&+p+b+q+#.( ( ( ( ( ( ' % ",
+"$ , ( ( ( ( ( ( G =+r+c.b.a.0.0.0.,+o+s+t+u+N.t.0.b.v+w+x+y+z+A+A.A.A.$+%+&+_+B+C+D+( ( ( ( ( ( , $ ",
+"# > ( ( ( ( ( ( ( ( E+c.c.b.a.0.0.0.F+G+H+I+s.t.}+c.J+K+L+M+N+O+A.A.P+$+%+&+Q+R+S+T+( ( ( ( ( ( > # ",
+"@ ; ( ( ( ( ( ( ( ( U+U.x.c.c.a.0.0.V+W+X+Y+N.Z+c.c.`+ @.@+@@@#@A.A.P+$+%+$@%@&@*@( ( ( ( ( ( ( ; @ ",
+"+ - / ( ( ( ( ( ( ( ( =@-@;@>@b.,@0.F+'@)@!@s.~@{@]@^@/@(@@+_@:@A.T.S.<@[@}@|@1@( ( ( ( ( ( ( / - + ",
+". = 2@( ( ( ( ( ( ( ( ( ( }.3@4@[+5@6@7@8@9@0@a@b@c@l.c.d@e@f@g@h@i@j@k@/+l@=@( ( ( ( ( ( ( ( 2@= . ",
+". * ] ( ( ( ( ( ( ( ( ( ( ( G m@n@o@p@q@r@s@t@u@J+u@u@u@v@w@x@y@z@A@B@C@D@$.( ( ( ( ( ( ( ( ( ] * . ",
+". & { | ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Q E@F@G@H@I@J@K@L@M@N@O@P@Q@R@( ( ( ( ( ( ( ( ( ( ( ( | { & . ",
+". . ~ S@( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( }.T@U@V@W@m@f G.G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( S@~ . . ",
+". . X@[ ( ( ( ( ( ( ( ( Y@e ( ( ( ( ( ( ( k Z@`@ #.#G.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( [ X@. . ",
+". . . < 4 ( ( ( ( ( ( ( +#@###( ( ( ( $#%#&#*#=#( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 < . . . ",
+". . . : 3 ( ( ( ( ( ( ( -#;#>#,#'#)#!#~#{#]#^#G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 3 : . . . ",
+". . . /#2 7 ( ( ( ( ( ( ( f (#_#:#<#[#}#Y@( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 2 /#. . . ",
+". . . . 1 6 0 ( ( ( ( ( ( ( ( G }.G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 6 1 . . . . ",
+". . . . . 5 9 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 9 5 . . . . . ",
+". . . . . . 8 |#e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e |#8 . . . . . . ",
+". . . . . . . b d e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e d b . . . . . . . ",
+". . . . . . . 1#b |#( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( |#b 1#. . . . . . . ",
+". . . . . . . . . 8 9 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 9 8 . . . . . . . . . ",
+". . . . . . . . . . 5 6 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 6 5 . . . . . . . . . . ",
+". . . . . . . . . . . 1 2 3 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 3 2 1 . . . . . . . . . . . ",
+". . . . . . . . . . . . /#: < [ S@| ( ( ( ( ( ( ( ( ( ( ( ( ( ( | S@[ < : /#. . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . X@~ { ] 2@/ ( ( ( ( ( ( ( ( / 2@] { ~ X@. . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . & * |.- ; > , ' ' , > ; - |.* & . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + @ # $ % % $ # @ + . . . . . . . . . . . . . . . . . . . . "};
--- /dev/null
+/* XPM */
+static char * lad_banner_xpm[] = {
+"113 39 1833 2",
+" c None",
+". c #C0C0C0",
+"+ c #97968A",
+"@ c #646356",
+"# c #3B3A30",
+"$ c #1D1D17",
+"% c #0B0B09",
+"& c #080706",
+"* c #070706",
+"= c #070707",
+"- c #0A0A0B",
+"; c #1A1A1B",
+"> c #353638",
+", c #5B5C60",
+"' c #8E8F92",
+") c #A4A499",
+"! c #4A493D",
+"~ c #060604",
+"{ c #0A0A08",
+"] c #413F31",
+"^ c #6F6D55",
+"/ c #918F70",
+"( c #A4A27F",
+"_ c #A9A783",
+": c #A9A784",
+"< c #A9A785",
+"[ c #A8A785",
+"} c #A8A686",
+"| c #A7A687",
+"1 c #A7A587",
+"2 c #A7A588",
+"3 c #A7A488",
+"4 c #A6A489",
+"5 c #A5A48A",
+"6 c #A4A48A",
+"7 c #A4A38B",
+"8 c #A4A38C",
+"9 c #A4A28C",
+"0 c #A3A28C",
+"a c #A3A28D",
+"b c #A2A28D",
+"c c #A2A28E",
+"d c #A2A18F",
+"e c #A1A190",
+"f c #A1A090",
+"g c #A1A091",
+"h c #A0A091",
+"i c #A0A092",
+"j c #9F9F93",
+"k c #9E9F94",
+"l c #9E9E94",
+"m c #9D9E94",
+"n c #9D9D95",
+"o c #9D9D96",
+"p c #9C9D96",
+"q c #9C9D97",
+"r c #9C9C97",
+"s c #9B9C98",
+"t c #9B9B98",
+"u c #9B9B99",
+"v c #9A9B99",
+"w c #9A9B9A",
+"x c #999B9A",
+"y c #999B9B",
+"z c #999A9B",
+"A c #989A9C",
+"B c #98999C",
+"C c #98999D",
+"D c #97999D",
+"E c #97989E",
+"F c #96989E",
+"G c #96989F",
+"H c #9698A0",
+"I c #91939A",
+"J c #7F8189",
+"K c #62636A",
+"L c #393A3E",
+"M c #09090A",
+"N c #050505",
+"O c #424346",
+"P c #9C9DA0",
+"Q c #ACACA1",
+"R c #34342A",
+"S c #030302",
+"T c #4B4A39",
+"U c #A9A67F",
+"V c #EAE8B2",
+"W c #F2EEB8",
+"X c #F2EEB9",
+"Y c #F1EEB9",
+"Z c #F1EEBA",
+"` c #F0EDBA",
+" . c #F0EDBB",
+".. c #F0EDBC",
+"+. c #EFECBC",
+"@. c #EEECBD",
+"#. c #EEECBE",
+"$. c #EEEBBE",
+"%. c #EDEBBF",
+"&. c #EDEABF",
+"*. c #EDEAC0",
+"=. c #ECEAC0",
+"-. c #ECEAC1",
+";. c #ECE9C1",
+">. c #EBE9C2",
+",. c #EAE8C3",
+"'. c #EAE8C4",
+"). c #E9E8C4",
+"!. c #E9E7C5",
+"~. c #E8E7C6",
+"{. c #E8E6C6",
+"]. c #E7E6C7",
+"^. c #E7E6C8",
+"/. c #E6E5C9",
+"(. c #E6E4CA",
+"_. c #E5E4CA",
+":. c #E5E4CB",
+"<. c #E4E4CB",
+"[. c #E4E4CC",
+"}. c #E4E3CD",
+"|. c #E3E3CD",
+"1. c #E3E2CE",
+"2. c #E2E2CE",
+"3. c #E2E2CF",
+"4. c #E1E1D0",
+"5. c #E1E1D1",
+"6. c #E0E0D1",
+"7. c #E0E0D2",
+"8. c #DFE0D2",
+"9. c #DFDFD3",
+"0. c #DEDFD4",
+"a. c #DEDFD5",
+"b. c #DDDED5",
+"c. c #DDDDD6",
+"d. c #DCDDD7",
+"e. c #DBDDD8",
+"f. c #DBDCD8",
+"g. c #DBDCD9",
+"h. c #DADBDA",
+"i. c #D9DBDB",
+"j. c #D9DADC",
+"k. c #D8DADC",
+"l. c #D8DADD",
+"m. c #D7D9DD",
+"n. c #D7D9DE",
+"o. c #D7D9DF",
+"p. c #D6D9DF",
+"q. c #D6D8DF",
+"r. c #D5D8E0",
+"s. c #D5D8E1",
+"t. c #D5D7E1",
+"u. c #D5D7E2",
+"v. c #D4D7E2",
+"w. c #D4D7E3",
+"x. c #D3D6E4",
+"y. c #CDCFDE",
+"z. c #9396A1",
+"A. c #434449",
+"B. c #020303",
+"C. c #2D2D30",
+"D. c #A5A5A8",
+"E. c #626152",
+"F. c #020201",
+"G. c #504F3C",
+"H. c #CECA99",
+"I. c #F3EFB7",
+"J. c #F2EFB8",
+"K. c #EFECBA",
+"L. c #E8E6C7",
+"M. c #E6E5C8",
+"N. c #E6E5CA",
+"O. c #E3E2CD",
+"P. c #E2E1D0",
+"Q. c #DDDED6",
+"R. c #D6D8E0",
+"S. c #D3D6E3",
+"T. c #D2D5E5",
+"U. c #D2D5E6",
+"V. c #B4B6C5",
+"W. c #47484E",
+"X. c #020202",
+"Y. c #57585C",
+"Z. c #C3C3BD",
+"`. c #2D2D23",
+" + c #181812",
+".+ c #AFAB81",
+"++ c #F4F0B5",
+"@+ c #F4F0B6",
+"#+ c #F3EFB6",
+"$+ c #EBE8B3",
+"%+ c #ADAA84",
+"&+ c #716F56",
+"*+ c #454435",
+"=+ c #2C2B22",
+"-+ c #25241C",
+";+ c #28271F",
+">+ c #3A392D",
+",+ c #5D5C49",
+"'+ c #989678",
+")+ c #DDDAAE",
+"!+ c #EBE9BC",
+"~+ c #060505",
+"{+ c #000000",
+"]+ c #888773",
+"^+ c #494940",
+"/+ c #3D3C35",
+"(+ c #E4E3CC",
+"_+ c #DADBD9",
+":+ c #D9DBDC",
+"<+ c #989AA6",
+"[+ c #151617",
+"}+ c #262729",
+"|+ c #BFBFC0",
+"1+ c #BCBBB4",
+"2+ c #1B1A14",
+"3+ c #373628",
+"4+ c #DEDAA3",
+"5+ c #F5F0B5",
+"6+ c #D3D09E",
+"7+ c #63614A",
+"8+ c #0C0C09",
+"9+ c #020203",
+"0+ c #1B1C1D",
+"a+ c #2F3034",
+"b+ c #3C3E43",
+"c+ c #414448",
+"d+ c #3E4045",
+"e+ c #303136",
+"f+ c #191A1B",
+"g+ c #3F3F32",
+"h+ c #ADAB8A",
+"i+ c #E7E5B9",
+"j+ c #EAE9C2",
+"k+ c #96947D",
+"l+ c #2B2B25",
+"m+ c #747363",
+"n+ c #BEBDA2",
+"o+ c #989783",
+"p+ c #6A695C",
+"q+ c #A1A08C",
+"r+ c #E3E2C7",
+"s+ c #E1E0C6",
+"t+ c #DFDFC6",
+"u+ c #DEDED5",
+"v+ c #DADCD9",
+"w+ c #D8D9DD",
+"x+ c #C0C3D2",
+"y+ c #313135",
+"z+ c #161617",
+"A+ c #B5B6B8",
+"B+ c #444332",
+"C+ c #ECE8AD",
+"D+ c #F5F1B4",
+"E+ c #EAE7AE",
+"F+ c #6D6B51",
+"G+ c #040403",
+"H+ c #1A1B1B",
+"I+ c #494C51",
+"J+ c #787B85",
+"K+ c #9397A0",
+"L+ c #A1A5AE",
+"M+ c #A9ADB6",
+"N+ c #ACB0B9",
+"O+ c #ADB1BA",
+"P+ c #A9ACB7",
+"Q+ c #9699A3",
+"R+ c #595B62",
+"S+ c #17171A",
+"T+ c #3D3D31",
+"U+ c #C2C09C",
+"V+ c #EAE7BD",
+"W+ c #DAD9B7",
+"X+ c #434238",
+"Y+ c #D9D8B9",
+"Z+ c #828170",
+"`+ c #131310",
+" @ c #3D3D35",
+".@ c #BABAA2",
+"+@ c #121210",
+"@@ c #5B5B50",
+"#@ c #090908",
+"$@ c #060605",
+"%@ c #616157",
+"&@ c #E0DFC9",
+"*@ c #636359",
+"=@ c #121211",
+"-@ c #626159",
+";@ c #DEDECA",
+">@ c #68685F",
+",@ c #5C5C55",
+"'@ c #D2D2C1",
+")@ c #383835",
+"!@ c #96968D",
+"~@ c #757671",
+"{@ c #DBDBD2",
+"]@ c #D9DBDA",
+"^@ c #D3D5E5",
+"/@ c #CBCEDF",
+"(@ c #3B3C41",
+"_@ c #2E2E24",
+":@ c #EDE8AD",
+"<@ c #F5F1B3",
+"[@ c #D0CB99",
+"}@ c #26261C",
+"|@ c #0F0F10",
+"1@ c #505257",
+"2@ c #838790",
+"3@ c #9FA2AB",
+"4@ c #AEB2BA",
+"5@ c #B1B5BD",
+"6@ c #B2B6BE",
+"7@ c #B1B5BE",
+"8@ c #B1B5BF",
+"9@ c #B0B4BE",
+"0@ c #ACB0BA",
+"a@ c #666870",
+"b@ c #0C0C0D",
+"c@ c #11110E",
+"d@ c #8D8B72",
+"e@ c #E3E1B8",
+"f@ c #444439",
+"g@ c #B5B399",
+"h@ c #E7E6C5",
+"i@ c #BBBAA1",
+"j@ c #24241F",
+"k@ c #272722",
+"l@ c #AAAA94",
+"m@ c #646457",
+"n@ c #201F1C",
+"o@ c #6B6B5F",
+"p@ c #2E2E29",
+"q@ c #858477",
+"r@ c #A7A696",
+"s@ c #141412",
+"t@ c #3A3934",
+"u@ c #B2B2A2",
+"v@ c #AAAA9C",
+"w@ c #161615",
+"x@ c #363632",
+"y@ c #ACAC9F",
+"z@ c #707068",
+"A@ c #2D2D2B",
+"B@ c #7F7F78",
+"C@ c #040404",
+"D@ c #2A2A27",
+"E@ c #73736D",
+"F@ c #B8B9B0",
+"G@ c #D3D5E4",
+"H@ c #636252",
+"I@ c #171711",
+"J@ c #DFDBA1",
+"K@ c #F6F1B3",
+"L@ c #C4C190",
+"M@ c #10100C",
+"N@ c #282828",
+"O@ c #70737B",
+"P@ c #9599A1",
+"Q@ c #AEB1B9",
+"R@ c #6A6C64",
+"S@ c #595B57",
+"T@ c #94979A",
+"U@ c #AFB3BB",
+"V@ c #9C9FA4",
+"W@ c #5D5E5C",
+"X@ c #666761",
+"Y@ c #A6ABB4",
+"Z@ c #B0B4BF",
+"`@ c #9EA1AC",
+" # c #27282B",
+".# c #080806",
+"+# c #73725D",
+"@# c #DFDDB5",
+"## c #DAD9B6",
+"$# c #424239",
+"%# c #282822",
+"&# c #A0A08B",
+"*# c #ACAB96",
+"=# c #646458",
+"-# c #9C9C8A",
+";# c #AAAA97",
+"># c #58584F",
+",# c #C8C7B4",
+"'# c #252521",
+")# c #383833",
+"!# c #A8A899",
+"~# c #E0E0CD",
+"{# c #2A2A26",
+"]# c #353531",
+"^# c #A5A599",
+"/# c #D9D9CA",
+"(# c #75756D",
+"_# c #010101",
+":# c #2D2D2A",
+"<# c #81817B",
+"[# c #CACBC2",
+"}# c #DBDDD7",
+"|# c #58595D",
+"1# c #AEADA2",
+"2# c #AEAB7E",
+"3# c #F6F2B2",
+"4# c #F6F2B3",
+"5# c #D0CC98",
+"6# c #333434",
+"7# c #797C84",
+"8# c #9FA2AA",
+"9# c #B1B5BC",
+"0# c #AFB2B7",
+"a# c #76701E",
+"b# c #CBC02A",
+"c# c #4C4E4F",
+"d# c #9B9EA6",
+"e# c #B1B6BE",
+"f# c #6C6E6E",
+"g# c #CEC32B",
+"h# c #726D1C",
+"i# c #7E8289",
+"j# c #ACB1BB",
+"k# c #B1B5C0",
+"l# c #ACB0BB",
+"m# c #333539",
+"n# c #080807",
+"o# c #797862",
+"p# c #E2E0B9",
+"q# c #CBCAAC",
+"r# c #B1B097",
+"s# c #E3E1C2",
+"t# c #49483F",
+"u# c #2B2B26",
+"v# c #B0AF9A",
+"w# c #6F6E61",
+"x# c #C6C6AF",
+"y# c #D7D6BE",
+"z# c #5A5A50",
+"A# c #C0BFAD",
+"B# c #292925",
+"C# c #3C3C36",
+"D# c #E1E1CE",
+"E# c #2D2D29",
+"F# c #393934",
+"G# c #DFDFCF",
+"H# c #BBBBAF",
+"I# c #0C0C0B",
+"J# c #3B3B38",
+"K# c #9B9B92",
+"L# c #D4D5CA",
+"M# c #A5A6A8",
+"N# c #37362A",
+"O# c #4F4E39",
+"P# c #F7F2B1",
+"Q# c #EDE9AD",
+"R# c #29281E",
+"S# c #29292A",
+"T# c #787B83",
+"U# c #A0A4AB",
+"V# c #B2B6BC",
+"W# c #B3B6BD",
+"X# c #7A7D7B",
+"Y# c #B9AF27",
+"Z# c #948C1F",
+"`# c #636669",
+" $ c #9EA1A9",
+".$ c #979A9D",
+"+$ c #968E1F",
+"@$ c #B6AD26",
+"#$ c #535557",
+"$$ c #A3A7B0",
+"%$ c #ACB0BC",
+"&$ c #282A2D",
+"*$ c #11110F",
+"=$ c #99987D",
+"-$ c #E8E6BE",
+";$ c #CDCBAB",
+">$ c #3A3A31",
+",$ c #9A9982",
+"'$ c #636254",
+")$ c #B7B69C",
+"!$ c #43433A",
+"~$ c #292923",
+"{$ c #9A9A86",
+"]$ c #A6A590",
+"^$ c #69685C",
+"/$ c #CDCCB5",
+"($ c #CBCAB3",
+"_$ c #55554C",
+":$ c #BDBDA9",
+"<$ c #363631",
+"[$ c #1B1B19",
+"}$ c #A1A193",
+"|$ c #C8C8B7",
+"1$ c #0D0D0C",
+"2$ c #9F9F94",
+"3$ c #BFBFB1",
+"4$ c #292927",
+"5$ c #53544E",
+"6$ c #010100",
+"7$ c #575752",
+"8$ c #D2D3C9",
+"9$ c #2E2E31",
+"0$ c #A7A699",
+"a$ c #D0CC95",
+"b$ c #F7F2B2",
+"c$ c #717052",
+"d$ c #10100F",
+"e$ c #707379",
+"f$ c #999CA3",
+"g$ c #B2B5BC",
+"h$ c #B3B6BC",
+"i$ c #ACAFB3",
+"j$ c #5E5C28",
+"k$ c #F3E633",
+"l$ c #4E4C25",
+"m$ c #7A7D86",
+"n$ c #AAAEB5",
+"o$ c #B2B5BE",
+"p$ c #5A582F",
+"q$ c #555120",
+"r$ c #868A91",
+"s$ c #AEB2BD",
+"t$ c #B0B5C0",
+"u$ c #A0A4AE",
+"v$ c #0D0E0F",
+"w$ c #2F2E26",
+"x$ c #C1BF9D",
+"y$ c #EAE8C1",
+"z$ c #3C3C34",
+"A$ c #C1C0AB",
+"B$ c #1F1F1B",
+"C$ c #989888",
+"D$ c #919082",
+"E$ c #080808",
+"F$ c #474742",
+"G$ c #232320",
+"H$ c #696962",
+"I$ c #464642",
+"J$ c #D4D5CB",
+"K$ c #B3B5C4",
+"L$ c #4D4C3E",
+"M$ c #4B4935",
+"N$ c #D8D49C",
+"O$ c #050504",
+"P$ c #57595B",
+"Q$ c #898D94",
+"R$ c #B0B4B9",
+"S$ c #ABAEB2",
+"T$ c #545339",
+"U$ c #DCD02E",
+"V$ c #958D20",
+"W$ c #5A5C5D",
+"X$ c #58584C",
+"Y$ c #65665E",
+"Z$ c #A7ABB2",
+"`$ c #6C6D66",
+" % c #63645B",
+".% c #7E8182",
+"+% c #989020",
+"@% c #DACE2E",
+"#% c #43422A",
+"$% c #92969E",
+"%% c #AFB3BE",
+"&% c #B0B4C0",
+"*% c #6E7178",
+"=% c #030303",
+"-% c #6C6B58",
+";% c #E1DEB8",
+">% c #AEAD91",
+",% c #71705F",
+"'% c #666555",
+")% c #666656",
+"!% c #696858",
+"~% c #666657",
+"{% c #7A7968",
+"]% c #7F7E6D",
+"^% c #666658",
+"/% c #757464",
+"(% c #7F7F6E",
+"_% c #636357",
+":% c #989685",
+"<% c #A5A592",
+"[% c #757468",
+"}% c #636358",
+"|% c #89887A",
+"1% c #D0CFBB",
+"2% c #9A9A8B",
+"3% c #52524B",
+"4% c #76766B",
+"5% c #77776E",
+"6% c #67675E",
+"7% c #73736B",
+"8% c #7F7F75",
+"9% c #696A63",
+"0% c #676760",
+"a% c #8F8F86",
+"b% c #8D8D85",
+"c% c #63635D",
+"d% c #70706A",
+"e% c #ACADA5",
+"f% c #D4D6E3",
+"g% c #424348",
+"h% c #424246",
+"i% c #070705",
+"j% c #A9A678",
+"k% c #6A684C",
+"l% c #1D1D1D",
+"m% c #797C85",
+"n% c #A5A9AF",
+"o% c #ADB0B3",
+"p% c #767877",
+"q% c #5F5D26",
+"r% c #DDD12E",
+"s% c #B7AD26",
+"t% c #46473E",
+"u% c #4A4B3F",
+"v% c #BCB227",
+"w% c #958D1F",
+"x% c #5E6162",
+"y% c #A6AAB2",
+"z% c #858888",
+"A% c #494A40",
+"B% c #595A50",
+"C% c #BAB027",
+"D% c #DBD02E",
+"E% c #585420",
+"F% c #646667",
+"G% c #A5A9B1",
+"H% c #AFB3BF",
+"I% c #1A1B1E",
+"J% c #2C2B25",
+"K% c #B7B596",
+"L% c #CFCEAD",
+"M% c #CCCBAB",
+"N% c #CCCAAC",
+"O% c #CBCAAD",
+"P% c #CDCCAF",
+"Q% c #D5D3B6",
+"R% c #CAC9AE",
+"S% c #CAC9AF",
+"T% c #D4D3B8",
+"U% c #CCCBB2",
+"V% c #C9C8B0",
+"W% c #CDCCB4",
+"X% c #E0DFC5",
+"Y% c #CECDB6",
+"Z% c #C7C7B2",
+"`% c #C9C9B4",
+" & c #DEDDC7",
+".& c #E0E0CB",
+"+& c #CBCAB7",
+"@& c #BBBBAA",
+"#& c #CBCBBA",
+"$& c #CDCDBC",
+"%& c #C5C5B6",
+"&& c #CFCFC0",
+"*& c #C7C7B8",
+"=& c #C4C4B7",
+"-& c #CBCBBE",
+";& c #D4D5C7",
+">& c #C4C4B9",
+",& c #C3C3B9",
+"'& c #CDCEC4",
+")& c #9294A0",
+"!& c #9B9A8B",
+"~& c #090906",
+"{& c #EFEAAA",
+"]& c #F7F3B1",
+"^& c #F2EDAE",
+"/& c #11110C",
+"(& c #525455",
+"_& c #8A8D95",
+":& c #6B6C66",
+"<& c #7A741D",
+"[& c #BFB528",
+"}& c #F2E533",
+"|& c #938B1F",
+"1& c #49493D",
+"2& c #D6CB2D",
+"3& c #434228",
+"4& c #757880",
+"5& c #A3A8AF",
+"6& c #ADB1B8",
+"7& c #525137",
+"8& c #D5CA2D",
+"9& c #49493F",
+"0& c #57584F",
+"a& c #F2E633",
+"b& c #BEB428",
+"c& c #78721C",
+"d& c #575855",
+"e& c #A4A8B3",
+"f& c #65686F",
+"g& c #7F7D68",
+"h& c #E5E3BD",
+"i& c #E8E7C5",
+"j& c #8F9093",
+"k& c #696857",
+"l& c #3E3D2C",
+"m& c #F8F3B0",
+"n& c #B7B383",
+"o& c #71737A",
+"p& c #9FA2A8",
+"q& c #636562",
+"r& c #8E861E",
+"s& c #4C4A27",
+"t& c #5D5F60",
+"u& c #4D4E41",
+"v& c #434229",
+"w& c #74777F",
+"x& c #9DA0A8",
+"y& c #B0B5BD",
+"z& c #ABB0B7",
+"A& c #504F35",
+"B& c #B7AE26",
+"C& c #77797B",
+"D& c #514F2B",
+"E& c #8F871E",
+"F& c #414344",
+"G& c #9295A0",
+"H& c #A0A4AF",
+"I& c #4B4B3E",
+"J& c #D2D0AD",
+"K& c #555547",
+"L& c #A09F87",
+"M& c #979789",
+"N& c #1C1C1A",
+"O& c #B4B4A5",
+"P& c #B6B6A9",
+"Q& c #37383C",
+"R& c #5C5D61",
+"S& c #403F32",
+"T& c #6E6C4E",
+"U& c #7E7B5A",
+"V& c #1F201E",
+"W& c #7B7E86",
+"X& c #ABAFB4",
+"Y& c #A4A7A9",
+"Z& c #6C6E6C",
+"`& c #747678",
+" * c #8C8F96",
+".* c #5F6055",
+"+* c #D6CA2D",
+"@* c #9DA0A7",
+"#* c #4E4F47",
+"$* c #9FA4AD",
+"%* c #8C8F93",
+"&* c #777981",
+"** c #9FA3AE",
+"=* c #1D1E20",
+"-* c #34342C",
+";* c #B6B496",
+">* c #B8B69A",
+",* c #0E0E0C",
+"'* c #22221D",
+")* c #C2C1A5",
+"!* c #E1E0CB",
+"~* c #CBCBB7",
+"{* c #3D3D37",
+"]* c #0F0F0E",
+"^* c #8A8A7F",
+"/* c #C6C6B5",
+"(* c #66665F",
+"_* c #74746C",
+":* c #C7C7B9",
+"<* c #DDDED0",
+"[* c #CBCBC0",
+"}* c #DCDCD0",
+"|* c #60626A",
+"1* c #36373A",
+"2* c #22221A",
+"3* c #908D66",
+"4* c #F7F3B0",
+"5* c #56543D",
+"6* c #383938",
+"7* c #82868D",
+"8* c #B4B7BC",
+"9* c #B2B6BB",
+"0* c #B0B3B9",
+"a* c #B2B5BB",
+"b* c #747672",
+"c* c #877F1C",
+"d* c #44432A",
+"e* c #74777E",
+"f* c #9CA0A7",
+"g* c #B0B4BC",
+"h* c #6B6D72",
+"i* c #3B3D3F",
+"j* c #63656B",
+"k* c #ABAEB7",
+"l* c #4F4E35",
+"m* c #87801D",
+"n* c #4C4E4D",
+"o* c #8E929B",
+"p* c #AFB4BE",
+"q* c #ADB1BC",
+"r* c #3D3E43",
+"s* c #292924",
+"t* c #9C9A81",
+"u* c #B5B397",
+"v* c #44443A",
+"w* c #858573",
+"x* c #E3E2C2",
+"y* c #191916",
+"z* c #B2B29A",
+"A* c #E2E1C5",
+"B* c #B9B8A3",
+"C* c #E3E2C9",
+"D* c #A2A291",
+"E* c #22221E",
+"F* c #31312C",
+"G* c #484741",
+"H* c #131311",
+"I* c #8B8B7F",
+"J* c #8B8B80",
+"K* c #D1D2C3",
+"L* c #99998F",
+"M* c #181817",
+"N* c #0E0E0D",
+"O* c #7B7B74",
+"P* c #DDDED3",
+"Q* c #7C7E88",
+"R* c #1B1C1E",
+"S* c #12120D",
+"T* c #A4A173",
+"U* c #3F3E2D",
+"V* c #444445",
+"W* c #B2B6BA",
+"X* c #B3B7BC",
+"Y* c #888B8A",
+"Z* c #878A8F",
+"`* c #6E7075",
+" = c #4F5258",
+".= c #A5A9B2",
+"+= c #ACAFB8",
+"@= c #7D8082",
+"#= c #898D96",
+"$= c #A8ACB6",
+"%= c #B0B5BF",
+"&= c #505258",
+"*= c #8B8972",
+"== c #E8E6C0",
+"-= c #515044",
+";= c #302F28",
+">= c #81816D",
+",= c #090807",
+"'= c #3B3B33",
+")= c #CFCFB1",
+"!= c #6E6E5F",
+"~= c #717162",
+"{= c #CECDB4",
+"]= c #66665A",
+"^= c #767568",
+"/= c #AAAA98",
+"(= c #33332E",
+"_= c #3F3F38",
+":= c #64645B",
+"<= c #A3A499",
+"[= c #3D3D39",
+"}= c #5F605A",
+"|= c #363633",
+"1= c #787973",
+"2= c #DBDCD2",
+"3= c #8D8F9A",
+"4= c #A8A576",
+"5= c #353426",
+"6= c #444646",
+"7= c #8E9198",
+"8= c #B1B5BB",
+"9= c #B2B6BD",
+"0= c #444648",
+"a= c #2D2D32",
+"b= c #8E929C",
+"c= c #AFB3BD",
+"d= c #57595F",
+"e= c #21211D",
+"f= c #83826B",
+"g= c #E7E5BF",
+"h= c #D2D0AF",
+"i= c #050404",
+"j= c #3A3930",
+"k= c #656555",
+"l= c #A5A48D",
+"m= c #E6E4C4",
+"n= c #B9B89F",
+"o= c #656457",
+"p= c #CAC9B0",
+"q= c #B0AF99",
+"r= c #69695C",
+"s= c #5A5950",
+"t= c #0F0F0D",
+"u= c #7E7E72",
+"v= c #989789",
+"w= c #BBBBA9",
+"x= c #10100E",
+"y= c #65655E",
+"z= c #575751",
+"A= c #1A1A19",
+"B= c #9A9B91",
+"C= c #B9B9AF",
+"D= c #252524",
+"E= c #B9BAB1",
+"F= c #9496A2",
+"G= c #A3A073",
+"H= c #F8F3AF",
+"I= c #403F2E",
+"J= c #414242",
+"K= c #8D9198",
+"L= c #808280",
+"M= c #A8ACAF",
+"N= c #77797E",
+"O= c #4C4E55",
+"P= c #90939E",
+"Q= c #A8ACB3",
+"R= c #7D7F80",
+"S= c #AEB2BB",
+"T= c #4F5157",
+"U= c #242420",
+"V= c #747360",
+"W= c #030202",
+"X= c #141411",
+"Y= c #151512",
+"Z= c #56564A",
+"`= c #DAD8BA",
+" - c #BDBCA2",
+".- c #656558",
+"+- c #B3B29C",
+"@- c #6A6A5E",
+"#- c #4E4E45",
+"$- c #878779",
+"%- c #D5D4BE",
+"&- c #65655C",
+"*- c #AEAEA0",
+"=- c #67675F",
+"-- c #4E4E48",
+";- c #8A8A81",
+">- c #4D4D48",
+",- c #242523",
+"'- c #979891",
+")- c #8B8D98",
+"!- c #24241B",
+"~- c #8E8B64",
+"{- c #58573F",
+"]- c #323334",
+"^- c #8A8D94",
+"/- c #6E6F66",
+"(- c #9B9320",
+"_- c #4C4A2A",
+":- c #94979B",
+"<- c #73767C",
+"[- c #393A3F",
+"}- c #52545C",
+"|- c #81858F",
+"1- c #A7ABB4",
+"2- c #A8ACB2",
+"3- c #555430",
+"4- c #9E9521",
+"5- c #55564F",
+"6- c #A6AAB3",
+"7- c #3B3D41",
+"8- c #2F2F29",
+"9- c #8D8B73",
+"0- c #D9D7B3",
+"a- c #161612",
+"b- c #35352D",
+"c- c #807E6B",
+"d- c #908F79",
+"e- c #8E8E78",
+"f- c #0C0C0A",
+"g- c #1A1A16",
+"h- c #B1B198",
+"i- c #CAC8AD",
+"j- c #46463D",
+"k- c #C9C8AF",
+"l- c #79786A",
+"m- c #878777",
+"n- c #53534B",
+"o- c #DAD9C3",
+"p- c #B9B8A6",
+"q- c #85857A",
+"r- c #A4A497",
+"s- c #606059",
+"t- c #83837A",
+"u- c #5B5B55",
+"v- c #D7D8CA",
+"w- c #A4A49C",
+"x- c #50504C",
+"y- c #93948D",
+"z- c #7A7C85",
+"A- c #1D1D1F",
+"B- c #444335",
+"C- c #6A684B",
+"D- c #82805D",
+"E- c #191A1A",
+"F- c #82858C",
+"G- c #9EA1A1",
+"H- c #656764",
+"I- c #8B8D8C",
+"J- c #B0B4B8",
+"K- c #6F7169",
+"L- c #ABA224",
+"M- c #DDD22E",
+"N- c #484626",
+"O- c #B2B5BD",
+"P- c #ADB1B9",
+"Q- c #A7ABB3",
+"R- c #A8ACB1",
+"S- c #E0D42F",
+"T- c #ACA324",
+"U- c #4A4B46",
+"V- c #8C9099",
+"W- c #8C8F91",
+"X- c #636666",
+"Y- c #989CA1",
+"Z- c #3D3C34",
+"`- c #9F9E82",
+" ; c #DDDBB9",
+".; c #676657",
+"+; c #171714",
+"@; c #D7D5B8",
+"#; c #C0BFA9",
+"$; c #4E4D45",
+"%; c #2C2C28",
+"&; c #BCBCAE",
+"*; c #454641",
+"=; c #333330",
+"-; c #7D7D76",
+";; c #5D5E66",
+">; c #39393C",
+",; c #6D6C5B",
+"'; c #393828",
+"); c #BFBB87",
+"!; c #6E7278",
+"~; c #ABAEB3",
+"{; c #61635F",
+"]; c #A49B22",
+"^; c #5A5723",
+"/; c #6F706F",
+"(; c #61625A",
+"_; c #A9ACB2",
+":; c #5E5B27",
+"<; c #A49C22",
+"[; c #D3C82C",
+"}; c #464848",
+"|; c #9DA1AC",
+"1; c #9DA0AB",
+"2; c #4E4D41",
+"3; c #B9B897",
+"4; c #AEAD90",
+"5; c #676655",
+"6; c #5E5D4F",
+"7; c #7C7B68",
+"8; c #C9C7A8",
+"9; c #C4C3A4",
+"0; c #858471",
+"a; c #606052",
+"b; c #626254",
+"c; c #9B9985",
+"d; c #D6D5B9",
+"e; c #6B6B5D",
+"f; c #525247",
+"g; c #807F70",
+"h; c #68675A",
+"i; c #5E5D53",
+"j; c #908F7F",
+"k; c #D5D4BD",
+"l; c #8A8A7B",
+"m; c #57564E",
+"n; c #737368",
+"o; c #747469",
+"p; c #66665D",
+"q; c #717168",
+"r; c #66665E",
+"s; c #5A5A54",
+"t; c #8C8C82",
+"u; c #CFD0C1",
+"v; c #7F7F76",
+"w; c #4B4B46",
+"x; c #5F5F59",
+"y; c #7E7E77",
+"z; c #999991",
+"A; c #333438",
+"B; c #616165",
+"C; c #A09F90",
+"D; c #ECE8A6",
+"E; c #F5F0AE",
+"F; c #15140F",
+"G; c #45474A",
+"H; c #9DA1A6",
+"I; c #74756F",
+"J; c #6D6821",
+"K; c #A89F23",
+"L; c #4B4B3C",
+"M; c #5B5C53",
+"N; c #DED22E",
+"O; c #94989C",
+"P; c #B1B4BC",
+"Q; c #A9ADB2",
+"R; c #ACA224",
+"S; c #464740",
+"T; c #494839",
+"U; c #A9A023",
+"V; c #F1E532",
+"W; c #A79E23",
+"X; c #69641F",
+"Y; c #4C4E4C",
+"Z; c #606269",
+"`; c #656453",
+" > c #D5D3AE",
+".> c #CCCAA8",
+"+> c #C9C7A7",
+"@> c #CAC8A8",
+"#> c #DEDCBA",
+"$> c #D6D4B5",
+"%> c #C7C6AA",
+"&> c #CFCDB0",
+"*> c #E5E4C5",
+"=> c #DEDDC0",
+"-> c #C2C1A8",
+";> c #BEBDA6",
+">> c #D4D3B9",
+",> c #C8C7B0",
+"'> c #C9C8B1",
+")> c #E1E0C8",
+"!> c #E0E0C8",
+"~> c #CCCCB6",
+"{> c #BEBEAB",
+"]> c #CDCDB9",
+"^> c #D0CFBC",
+"/> c #C3C3B2",
+"(> c #CACAB9",
+"_> c #C1C1B3",
+":> c #C6C6B7",
+"<> c #DDDDCE",
+"[> c #DCDCCD",
+"}> c #C4C4B8",
+"|> c #B4B5AA",
+"1> c #C0C0B5",
+"2> c #D8D8CC",
+"3> c #C9CCDC",
+"4> c #959699",
+"5> c #0B0A08",
+"6> c #A19E71",
+"7> c #717051",
+"8> c #141414",
+"9> c #868A90",
+"0> c #B1B5B9",
+"a> c #727473",
+"b> c #4F4D26",
+"c> c #D0C52C",
+"d> c #C7BC2A",
+"e> c #48483A",
+"f> c #5A5C54",
+"g> c #AAA124",
+"h> c #8B841E",
+"i> c #5E6062",
+"j> c #A3A7AE",
+"k> c #898C8D",
+"l> c #8C851E",
+"m> c #474842",
+"n> c #49483A",
+"o> c #C9BE2A",
+"p> c #CFC42B",
+"q> c #4B4823",
+"r> c #595B5E",
+"s> c #80838C",
+"t> c #A4A8B2",
+"u> c #171719",
+"v> c #3B3B34",
+"w> c #86856D",
+"x> c #E7E5BD",
+"y> c #070808",
+"z> c #565445",
+"A> c #41402E",
+"B> c #DFDB9F",
+"C> c #080705",
+"D> c #484A4E",
+"E> c #A4A7AD",
+"F> c #B3B7BB",
+"G> c #ABAFB2",
+"H> c #4E4D3B",
+"I> c #D2C62C",
+"J> c #5D5E5E",
+"K> c #656660",
+"L> c #575856",
+"M> c #7F838C",
+"N> c #A9ACB3",
+"O> c #717371",
+"P> c #555651",
+"Q> c #5B5D5E",
+"R> c #D0C52B",
+"S> c #414130",
+"T> c #757982",
+"U> c #979BA5",
+"V> c #ACB1BA",
+"W> c #66686F",
+"X> c #5A594B",
+"Y> c #BCBA99",
+"Z> c #BBBA9E",
+"`> c #C3C3B5",
+" , c #CECEC2",
+"., c #3A3B40",
+"+, c #494A4E",
+"@, c #B0AEA2",
+"#, c #C6C28C",
+"$, c #7B7958",
+"%, c #080909",
+"&, c #777A80",
+"*, c #AFB3B8",
+"=, c #AEB2B5",
+"-, c #565329",
+";, c #535023",
+">, c #8E9298",
+",, c #A9ADB5",
+"', c #5E5B2A",
+"), c #4D4B22",
+"!, c #73767F",
+"~, c #9CA0A9",
+"{, c #9C9FA8",
+"], c #0A0A0C",
+"^, c #404038",
+"/, c #807F67",
+"(, c #8B8A73",
+"_, c #21211B",
+":, c #414137",
+"<, c #3A3931",
+"[, c #ABA991",
+"}, c #E2E1C2",
+"|, c #E1E1CD",
+"1, c #DEDECB",
+"2, c #D6D6C7",
+"3, c #565650",
+"4, c #707069",
+"5, c #D9DACF",
+"6, c #D5D7D7",
+"7, c #D7D9DB",
+"8, c #AAADBB",
+"9, c #A6A7A9",
+"0, c #424133",
+"a, c #43422F",
+"b, c #F1ECAD",
+"c, c #2C2B20",
+"d, c #1A1A1C",
+"e, c #90949A",
+"f, c #B2B5BA",
+"g, c #818382",
+"h, c #B0A725",
+"i, c #9B9220",
+"j, c #67696B",
+"k, c #AAADB4",
+"l, c #939598",
+"m, c #9D9521",
+"n, c #ADA424",
+"o, c #555759",
+"p, c #8E919A",
+"q, c #A9ADB7",
+"r, c #232427",
+"s, c #636251",
+"t, c #C7C4A0",
+"u, c #D9D7B2",
+"v, c #3F3F34",
+"w, c #97967E",
+"x, c #B8B79A",
+"y, c #9D9C83",
+"z, c #2E2E27",
+"A, c #BAB99E",
+"B, c #161613",
+"C, c #848473",
+"D, c #E4E3C7",
+"E, c #35352F",
+"F, c #23231F",
+"G, c #2A2A25",
+"H, c #DEDDC5",
+"I, c #3A3A35",
+"J, c #DDDDC7",
+"K, c #7B7A6F",
+"L, c #33332F",
+"M, c #B8B8AA",
+"N, c #919287",
+"O, c #71726B",
+"P, c #1E1E1C",
+"Q, c #212120",
+"R, c #9B9B96",
+"S, c #D6D7CF",
+"T, c #232321",
+"U, c #212221",
+"V, c #7E7F7B",
+"W, c #292928",
+"X, c #181818",
+"Y, c #555554",
+"Z, c #CACCC9",
+"`, c #B6B8B7",
+" ' c #111111",
+".' c #717273",
+"+' c #D6D8DB",
+"@' c #535456",
+"#' c #212122",
+"$' c #707174",
+"%' c #343536",
+"&' c #A7A9AF",
+"*' c #616366",
+"=' c #0D0D0E",
+"-' c #1C1D1E",
+";' c #2D2E30",
+">' c #A2A4AD",
+",' c #D1D4E1",
+"'' c #38383B",
+")' c #B8B7AD",
+"!' c #050503",
+"~' c #A09D72",
+"{' c #D9D59C",
+"]' c #14130E",
+"^' c #212224",
+"/' c #979BA0",
+"(' c #B1B4B8",
+"_' c #726D1E",
+":' c #484A4A",
+"<' c #6B6C6C",
+"[' c #6E681C",
+"}' c #757780",
+"|' c #2E2F32",
+"1' c #595849",
+"2' c #414136",
+"3' c #B0AF93",
+"4' c #E9E7C3",
+"5' c #434339",
+"6' c #91917C",
+"7' c #3C3C33",
+"8' c #676659",
+"9' c #414138",
+"0' c #777768",
+"a' c #969585",
+"b' c #46463F",
+"c' c #5E5E54",
+"d' c #5B5B53",
+"e' c #21211E",
+"f' c #BBBBAD",
+"g' c #96968B",
+"h' c #73736C",
+"i' c #4D4D49",
+"j' c #94958F",
+"k' c #4A4A47",
+"l' c #4C4D4B",
+"m' c #424241",
+"n' c #272827",
+"o' c #C0C1C0",
+"p' c #191919",
+"q' c #313131",
+"r' c #616262",
+"s' c #424243",
+"t' c #616263",
+"u' c #808183",
+"v' c #252526",
+"w' c #5E5F62",
+"x' c #4C4D50",
+"y' c #525357",
+"z' c #67686E",
+"A' c #BCBFC9",
+"B' c #8A8C98",
+"C' c #030304",
+"D' c #AFB0B3",
+"E' c #727160",
+"F' c #100F0B",
+"G' c #D7D399",
+"H' c #CBC793",
+"I' c #12110D",
+"J' c #18191B",
+"K' c #878B90",
+"L' c #B1B5BA",
+"M' c #707270",
+"N' c #515352",
+"O' c #707378",
+"P' c #9DA0A6",
+"Q' c #A3A7AC",
+"R' c #5F6160",
+"S' c #515253",
+"T' c #82868F",
+"U' c #ADB2BB",
+"V' c #999CA5",
+"W' c #222325",
+"X' c #555546",
+"Y' c #989679",
+"Z' c #E7E4B8",
+"`' c #59594B",
+" ) c #4E4E43",
+".) c #676558",
+"+) c #9B9A86",
+"@) c #33332C",
+"#) c #B5B59E",
+"$) c #252420",
+"%) c #282823",
+"&) c #9C9C8B",
+"*) c #46463E",
+"=) c #7B7B6F",
+"-) c #22221F",
+";) c #3B3A35",
+">) c #8C8C80",
+",) c #8E8E83",
+"') c #585851",
+")) c #444540",
+"!) c #242423",
+"~) c #7A7A74",
+"{) c #9B9C94",
+"]) c #AEAFA7",
+"^) c #101010",
+"/) c #353533",
+"() c #8B8B87",
+"_) c #464744",
+":) c #81817E",
+"<) c #A7A9A5",
+"[) c #6E6F6D",
+"}) c #404040",
+"|) c #5F6060",
+"1) c #747474",
+"2) c #919294",
+"3) c #3B3C3C",
+"4) c #A5A7AA",
+"5) c #0C0C0C",
+"6) c #232324",
+"7) c #747579",
+"8) c #797A7E",
+"9) c #1E1E20",
+"0) c #6D6E73",
+"a) c #AAACB5",
+"b) c #8A8C93",
+"c) c #BEC0CB",
+"d) c #B8BAC9",
+"e) c #65666A",
+"f) c #3B3B2E",
+"g) c #2A291E",
+"h) c #E8E4A6",
+"i) c #D3D099",
+"j) c #25241B",
+"k) c #525458",
+"l) c #ABAEB4",
+"m) c #AAAEB4",
+"n) c #B0B4BB",
+"o) c #AFB4BC",
+"p) c #626569",
+"q) c #595748",
+"r) c #9B9A7C",
+"s) c #E5E2B7",
+"t) c #D9D8B2",
+"u) c #2A2923",
+"v) c #1D1D19",
+"w) c #403F36",
+"x) c #12120F",
+"y) c #969583",
+"z) c #808071",
+"A) c #848374",
+"B) c #979687",
+"C) c #131312",
+"D) c #111110",
+"E) c #4B4B45",
+"F) c #7B7B72",
+"G) c #30302D",
+"H) c #373734",
+"I) c #8F8F87",
+"J) c #D7D8CD",
+"K) c #393937",
+"L) c #2C2D2B",
+"M) c #777773",
+"N) c #60615E",
+"O) c #B3B3AF",
+"P) c #DADCD7",
+"Q) c #BABBB9",
+"R) c #1C1C1C",
+"S) c #0B0B0B",
+"T) c #101111",
+"U) c #86878A",
+"V) c #414243",
+"W) c #939498",
+"X) c #D1D3DA",
+"Y) c #75777B",
+"Z) c #121213",
+"`) c #9799A1",
+" ! c #D2D4E0",
+".! c #C5C8D8",
+"+! c #252629",
+"@! c #323235",
+"#! c #C6C6C3",
+"$! c #26251D",
+"%! c #333325",
+"&! c #E7E2A5",
+"*! c #EBE7AB",
+"=! c #636248",
+"-! c #0E0F10",
+";! c #4F5155",
+">! c #94979C",
+",! c #979BA2",
+"'! c #5A5C61",
+")! c #3D3D33",
+"!! c #696853",
+"~! c #B1AF8C",
+"{! c #E7E6B8",
+"]! c #B0AF92",
+"^! c #E5E3BF",
+"/! c #797865",
+"(! c #504F43",
+"_! c #626253",
+":! c #6D6D5E",
+"<! c #94937F",
+"[! c #959581",
+"}! c #676759",
+"|! c #7B7A6A",
+"1! c #A7A692",
+"2! c #D1D1B8",
+"3! c #1C1C19",
+"4! c #7B7B6E",
+"5! c #BCBBA8",
+"6! c #828177",
+"7! c #939386",
+"8! c #818177",
+"9! c #63635B",
+"0! c #8B8B81",
+"a! c #888881",
+"b! c #BCBDB4",
+"c! c #090909",
+"d! c #4B4C49",
+"e! c #73736F",
+"f! c #363634",
+"g! c #C0C0BB",
+"h! c #696967",
+"i! c #474847",
+"j! c #606161",
+"k! c #8A8B8B",
+"l! c #8D8F8F",
+"m! c #636464",
+"n! c #707172",
+"o! c #434345",
+"p! c #A4A5AA",
+"q! c #C5C7CE",
+"r! c #93959A",
+"s! c #A8ABB1",
+"t! c #74747A",
+"u! c #313235",
+"v! c #B4B6C0",
+"w! c #C5C8D7",
+"x! c #2E2F33",
+"y! c #1F2022",
+"z! c #C2C2C3",
+"A! c #C5C4BE",
+"B! c #27261D",
+"C! c #28271C",
+"D! c #D3CF97",
+"E! c #F4EFB2",
+"F! c #C7C491",
+"G! c #4C4B38",
+"H! c #0D0D0A",
+"I! c #2E2F31",
+"J! c #434447",
+"K! c #494B4E",
+"L! c #444549",
+"M! c #323335",
+"N! c #121214",
+"O! c #38372E",
+"P! c #5F5E4B",
+"Q! c #939073",
+"R! c #D3D0A6",
+"S! c #EDEABC",
+"T! c #2C2C24",
+"U! c #0E0E0B",
+"V! c #35342C",
+"W! c #7D7D69",
+"X! c #BBB99E",
+"Y! c #2D2D26",
+"Z! c #0D0D0B",
+"`! c #4F4E44",
+" ~ c #32322B",
+".~ c #0C0B0A",
+"+~ c #92927F",
+"@~ c #CAC9B1",
+"#~ c #48473F",
+"$~ c #33332D",
+"%~ c #88887A",
+"&~ c #D8D7C2",
+"*~ c #B1B1A0",
+"=~ c #54544D",
+"-~ c #919186",
+";~ c #1A1A18",
+">~ c #222220",
+",~ c #AFB0A5",
+"'~ c #31312F",
+")~ c #1C1C1B",
+"!~ c #747570",
+"~~ c #858580",
+"{~ c #060606",
+"]~ c #1D1D1C",
+"^~ c #444443",
+"/~ c #7C7D7B",
+"(~ c #323232",
+"_~ c #464747",
+":~ c #363636",
+"<~ c #818385",
+"[~ c #4C4C4D",
+"}~ c #7B7B7F",
+"|~ c #9DA0A4",
+"1~ c #37383A",
+"2~ c #66676C",
+"3~ c #414245",
+"4~ c #989AA2",
+"5~ c #B6B8C6",
+"6~ c #C1C1C3",
+"7~ c #C3C3C2",
+"8~ c #3E3D31",
+"9~ c #0E0D0A",
+"0~ c #99966E",
+"a~ c #F5F1B1",
+"b~ c #F0ECB0",
+"c~ c #D4D09D",
+"d~ c #888564",
+"e~ c #484736",
+"f~ c #2C2C21",
+"g~ c #212019",
+"h~ c #1F1F18",
+"i~ c #22221B",
+"j~ c #2B2B22",
+"k~ c #3B3A2E",
+"l~ c #555443",
+"m~ c #7B795F",
+"n~ c #A3A17E",
+"o~ c #D2CFA4",
+"p~ c #EBE7B8",
+"q~ c #6C6B59",
+"r~ c #403F34",
+"s~ c #37362D",
+"t~ c #3E3E34",
+"u~ c #5B5A4C",
+"v~ c #83826F",
+"w~ c #B2B196",
+"x~ c #E4E2C1",
+"y~ c #DAD9B9",
+"z~ c #57574B",
+"A~ c #282722",
+"B~ c #D5D4BA",
+"C~ c #B5B39E",
+"D~ c #494941",
+"E~ c #626258",
+"F~ c #A9A996",
+"G~ c #E3E2CB",
+"H~ c #ABAB9B",
+"I~ c #383733",
+"J~ c #282825",
+"K~ c #4E4E47",
+"L~ c #7D7D74",
+"M~ c #96968A",
+"N~ c #595952",
+"O~ c #3A3A36",
+"P~ c #929289",
+"Q~ c #B7B8AD",
+"R~ c #40403D",
+"S~ c #242422",
+"T~ c #3E3E3B",
+"U~ c #71716D",
+"V~ c #979791",
+"W~ c #9FA09A",
+"X~ c #555654",
+"Y~ c #3D3E3C",
+"Z~ c #30312F",
+"`~ c #525351",
+" { c #7B7B7A",
+".{ c #AEAFAD",
+"+{ c #D0D1D0",
+"@{ c #5B5B5B",
+"#{ c #262626",
+"${ c #343535",
+"%{ c #696A6B",
+"&{ c #868789",
+"*{ c #747677",
+"={ c #434445",
+"-{ c #333334",
+";{ c #666669",
+">{ c #A0A2A7",
+",{ c #606164",
+"'{ c #393A3C",
+"){ c #29292B",
+"!{ c #4D4E52",
+"~{ c #74767C",
+"{{ c #AFB2BB",
+"]{ c #D2D5E3",
+"^{ c #858790",
+"/{ c #0C0D0D",
+"({ c #353639",
+"_{ c #C2C2C2",
+":{ c #777666",
+"<{ c #3A392A",
+"[{ c #BCB889",
+"}{ c #F5F0B4",
+"|{ c #F3EFB4",
+"1{ c #EBE8AF",
+"2{ c #DBD8A4",
+"3{ c #CAC798",
+"4{ c #BFBB90",
+"5{ c #BAB88D",
+"6{ c #BEBB90",
+"7{ c #CAC79B",
+"8{ c #D9D7A7",
+"9{ c #E8E6B3",
+"0{ c #EFECB9",
+"a{ c #C7C4A3",
+"b{ c #C2C0A0",
+"c{ c #C2C0A1",
+"d{ c #C5C4A4",
+"e{ c #D7D5B4",
+"f{ c #E7E6C2",
+"g{ c #E3E2C1",
+"h{ c #B2B199",
+"i{ c #BCBBA2",
+"j{ c #DAD9BD",
+"k{ c #D6D5BD",
+"l{ c #BFBEAA",
+"m{ c #D7D7BF",
+"n{ c #D6D5C1",
+"o{ c #B7B7A7",
+"p{ c #AEAE9F",
+"q{ c #C3C3B3",
+"r{ c #DDDDCC",
+"s{ c #D8D8C8",
+"t{ c #BCBCAF",
+"u{ c #B9B9AD",
+"v{ c #C1C1B5",
+"w{ c #DCDDD0",
+"x{ c #D5D5CA",
+"y{ c #ABABA3",
+"z{ c #BBBCB4",
+"A{ c #D3D4CB",
+"B{ c #565653",
+"C{ c #363635",
+"D{ c #B9BAB5",
+"E{ c #B8B9B4",
+"F{ c #B0B2AE",
+"G{ c #C5C6C3",
+"H{ c #D9DAD7",
+"I{ c #D6D7D6",
+"J{ c #BCBEBE",
+"K{ c #A8A9A9",
+"L{ c #AEAFB1",
+"M{ c #CACCCE",
+"N{ c #BDBFC2",
+"O{ c #B2B4B8",
+"P{ c #B3B4B9",
+"Q{ c #CBCED4",
+"R{ c #CCCED5",
+"S{ c #B6B9C0",
+"T{ c #B3B5BD",
+"U{ c #A5A6AE",
+"V{ c #B8B9C3",
+"W{ c #D1D4DE",
+"X{ c #A3A5AE",
+"Y{ c #343538",
+"Z{ c #6C6D71",
+"`{ c #49483B",
+" ] c #353427",
+".] c #93916C",
+"+] c #DFDAA4",
+"@] c #D7D8CF",
+"#] c #171716",
+"$] c #949490",
+"%] c #D4D5CF",
+"&] c #C3C4CE",
+"*] c #818288",
+"=] c #2F3033",
+"-] c #404144",
+";] c #B6B6B8",
+">] c #B7B7AE",
+",] c #5F5E50",
+"'] c #11110D",
+")] c #2A291F",
+"!] c #595842",
+"~] c #7B795C",
+"{] c #8F8D6B",
+"]] c #989572",
+"^] c #9B9976",
+"/] c #9B9876",
+"(] c #9A9876",
+"_] c #9A9877",
+":] c #999777",
+"<] c #999778",
+"[] c #999779",
+"}] c #989779",
+"|] c #97967A",
+"1] c #97967B",
+"2] c #96957C",
+"3] c #95947E",
+"4] c #94947F",
+"5] c #949380",
+"6] c #939280",
+"7] c #939281",
+"8] c #929281",
+"9] c #929282",
+"0] c #929182",
+"a] c #929183",
+"b] c #919183",
+"c] c #919084",
+"d] c #909084",
+"e] c #909085",
+"f] c #909086",
+"g] c #8E8F88",
+"h] c #8D8E88",
+"i] c #888883",
+"j] c #686864",
+"k] c #636360",
+"l] c #696966",
+"m] c #888985",
+"n] c #8C8D8A",
+"o] c #8C8D8B",
+"p] c #8B8D8B",
+"q] c #8B8C8B",
+"r] c #8B8C8C",
+"s] c #8A8B8D",
+"t] c #898B8D",
+"u] c #898B8E",
+"v] c #7E8083",
+"w] c #4F5053",
+"x] c #262628",
+"y] c #57575A",
+"z] c #B1B1B3",
+"A] c #AAAA9F",
+"B] c #797869",
+"C] c #515043",
+"D] c #333329",
+"E] c #23221B",
+"F] c #1B1B15",
+"G] c #181712",
+"H] c #171712",
+"I] c #171713",
+"J] c #171614",
+"K] c #161614",
+"L] c #151615",
+"M] c #151515",
+"N] c #151516",
+"O] c #181919",
+"P] c #1E1F1F",
+"Q] c #2E2F30",
+"R] c #494A4B",
+"S] c #717173",
+"T] c #A4A5A7",
+". . . . . . . . . . . . . . + @ # $ % & & & * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - ; > , ' . . . . . . . . . . . . . . ",
+". . . . . . . . . . . ) ! ~ { ] ^ / ( _ : < < < [ } } | 1 2 2 2 3 4 4 5 5 5 6 7 8 8 9 0 a b c c d d d e f g h h h i i j j k l m n n n o o p q r s s s t u v w x y y z A A B C C D E F G H H I J K L M N O P . . . . . . . . . . . ",
+". . . . . . . . . Q R S T U V W X Y Z ` ...+.+.@.#.$.%.&.*.=.-.;.>.>.,.'.'.).!.~.~.{.].^.^././.(._.:.<.[.}.|.1.2.3.3.4.4.5.6.7.8.9.9.0.a.b.b.c.d.d.e.f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.y.z.A.B.C.D.. . . . . . . . . ",
+". . . . . . . . E.F.G.H.I.I.J.W X Y Z ` K...+.+.@.#.$.$.&.*.=.-.;.>.>.,.,.'.).!.~.~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.P.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.U.V.W.X.Y.. . . . . . . . ",
+". . . . . . Z.`. +.+++@+#+I.$+%+&+*+=+-+;+>+,+'+)+!+$.$.%.*.=.=.-.>.>.,.,.~+{+{+]+~.{.L.^+/+M./.N._._.<.[.(+|.|.1.3.3.3.4.5.6.7.8.9.9.0.0.b.b.Q.c.d.d.e.g.g._+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.<+[+}+|+. . . . . . ",
+". . . . . 1+2+3+4+5+++@+6+7+8+9+0+a+b+c+d+e+f+X.* g+h+i+%.*.=.=.-.>.>.j+,.k+{+l+m+n+{.L.o+p+q+r+N._.s+t+[.(+}.|.1.2.3.3.4.5.6.6.8.9.9.0.0.u+b.Q.c.d.d.e.f.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.v.S.x.x.T.T.U.U.U.x+y+z+A+. . . . . ",
+". . . . Z.2+B+C+D+5+E+F+G+H+I+J+K+L+M+N+O+N+P+Q+R+S+X.T+U+V+=.=.-.>.>.>.,.W+{+X+7 Y+{.Z+`+ @.@`++@@@#@$@%@&@*@=@-@;@>@=@,@'@=@=@)@!@=@=@~@{@b.Q.c.d.d.e.f.g.v+h.]@i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U./@(@z+|+. . . . ",
+". . . . _@3+:@<@D+[@}@|@1@2@3@4@5@6@6@6@7@8@8@8@9@0@a@b@c@d@e@=.-.;.>.>.,.W+{+f@g@h@~.i@j@k@l@m@{+n@o@p@{+q@r@s@t@u@v@w@x@y@z@G+A@B@C@D@E@F@b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.q.r.s.t.v.v.w.x.x.G@T.U.U.U.U.U./@y+}+. . . . ",
+". . . H@I@J@K@<@L@M@N@O@P@Q@R@S@T@U@6@6@7@8@V@W@X@Y@Z@`@ #.#+#@#-.;.>.>.,.##{+f@g@h@~.{.$#%#&#*#{+=#-#;#{+>#,#'#)#!#~#{#]#^#/#(#_##@:#<#o [#b.b.c.d.d.}#e.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.x+[+|#. . . ",
+". . 1#F.2#3#4#5#M@6#7#8#9#0#a#b#c#d#e#6@7@8@f#g#h#i#j#k#l#m#n#o#p#-.>.>.,.##{+f@g@q#r#s#t#u#&#v#{+w#x#y#{+z#A#B#C#!#D#E#F#^#G#H#I#{+J#K#L#0.b.b.Q.d.d.d.e.g.g._+h.i.i.j.k.l.m.n.n.o.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.<+X.M#. . ",
+". . N#O#P#3#Q#R#S#T#U#V#W#X#Y#Z#`# $e#6@7@8@.$+$@$#$$$8@k#%$&$*$=$-$>.>.,.;${+>$,$'${+)$!$~${$]${+^$/$(${+_$:$<$[$}$|$1$]#2$3$[$4$5$6$7$8$0.b.b.Q.c.d.d.e.g.g.v+h.i.i.i.k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.W.9$. . ",
+". 0$F.a$P#b$c$d$e$f$g$h$i$j$k$l$m$n$e#6@o$8@7@p$k$q$r$s$k#t$u$v$w$x$y$>.>.~+{+{+{+{+{+z${+{+!${+{+{+A$B${+{+C$D$_#E$#@s@{+F${+{+G$H$X.{+I$J$u+b.Q.c.d.d.e.f.g.v+h.i.i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.U.U.U.K$B.P . ",
+". L$M$P#P#N$O$P$Q$R$h$S$T$U$V$W$X$Y$Z$7@6@`$ %.%+%@%#%$%%%t$&%*%=%-%;%>.>.>%,%'%)%!%~%{%]%^%/%(%w#_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%a.b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.R.r.t.t.v.v.f%x.x.G@T.U.U.U.U.U.U.U.U.g%h%. ",
+". i%j%P#P#k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%Z#s%A%B%C%D%E%F%G%H%H%I%J%K%y$>.,.L%;$M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'&a.b.b.c.d.d.e.f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.G@T.U.U.U.U.U.U.U.U.)&N . ",
+"!&~&{&]&^&/&(&_&:&<&[&}&|&t%1&v%2&3&4&5&6&7&8&s%9&0&V$a&b&c&d&e&f&#@g&h&>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.P.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.U.U.U.U.U.U.U.U./@M j&",
+"k&l&m&]&n&X.o&p&q&b&r&s&t&u&v%2&v&w&x&y&6@z&A&8&B&A%C&D&E&v%F&G&H&X.I&J&>.,.,.K&{+{+L&~.{.L.^.^.M./.N._._.<.[.(+|.M&{+N&3.O&{+P&6.7.8.9.9.0.0.b.b.Q.c.d.d.e.g.g.v+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.U.Q&R&",
+"S&T&m&]&U&V&W&X&Y&Z&`& *.*v%+*v&w&@*9#6@e#7@z&A&8&B&#*$*%*t&&***&%=*-*;*>.j+,.>*,*X.'*)*{.L.].^.M./.N._._.<.[.(+!*~*{*]*^*/*(*_*:*6.<*[*}*0.0.u+b.Q.c.d.d.e.f.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.v.S.x.x.T.T.U.U.U.U.U.U.U.U.|*1*",
+"2*3*m&4*5*6*7*R$8*9*0*a*b*c*d*e*f*g*h*i*j*k*7@z&l*m*n*o*p*%%q*H%&%r*s*t*y$>.,.u*_#v*_#w*x*L.y*+@z*A*`++@B*C*D*E*X.F*G*H*I*s@*$J*K*L*M*{+N*O*P*u+b.Q.c.d.d.e.f.g.v+h.]@i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.G@T.U.U.U.U.U.U.U.U.Q*R*",
+"S*T*m&m&U*V*_&W*8*X*X*h$V#Y*Z*@*9#`*{+{+{+ =.=7@+=@=#=$=%=k#t$&%&%&=E**===>.,.-=;=>=,='=)={.!={+~={=]={+^=/=N (=%@_=_#H*I*:={+z@<==%[=}=|={+1=2=b.b.c.d.d.e.f.g.v+h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.G@T.U.U.U.U.U.U.U.U.3=- ",
+"~&4=m&m&5=6=7=9*8*X*X*h$h$V#8=g$9=0={+{+{+a=b=7@8@9@c=%=k#k#k#&%&%d=e=f=g=>.h=i=j=k=l+{ l=m=n={+o=p=q={+r=s=t=u=v=w={*x=^*v@{+y=z=A=B@B=C=D@D=E=b.b.Q.d.d.}#e.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.U.U.F== ",
+"S*G=H=m&I=J=K=9*8*X*X*h$h$L=M=9#9=N={+{+{+O=P=7@Q=R=S=8@k#k#k#t$&%T=U=f=g=>.V=W=c@X=Y={+Z=`= -{+.-p=+-{+@-#-y*$-%-|.&-s@I**-{+=---G$;-;&9.>-,-'-b.b.Q.c.d.d.e.g.g._+h.i.i.j.k.l.m.n.n.o.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.)-b@",
+"!-~-H=m&{-]-^-W*8*8*X*X*/-(-_-:-9#9=<-[-}-|-1-2-3-4-5-6-%=k#k#t$&%7-8-9-==0-a-b-c-d-e-f-g-h-i-{+j-k-l-{+=#m-{+n-o-p-H*s@q-r-{+s-t-_#u-v-w-#@x-y-u+b.Q.c.d.d.e.g.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.z-A-",
+"B-C-H=m&D-E-F-R$G-H-I-J-K-L-M-N-:-9#O-P-Q-O+R-3-S-T-U-V-W-X-Y-%%&%R*Z-`-y$S {+.#!% ;.;$@{++;@;z${+N*+;{+=%#;$;{+$@=%G${+%;F.{+_#&;*;{+=%{+=;-;e%u+b.Q.c.d.d.e.f.g.v+h.i.i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.U.U.U.;;>;",
+",;';H=m&);_#!;~;{;8&];^;/;(;L-M-N-:-9#6@6@_;3-S-T-F$W$:;<;[;};|;1;{+2;3;;.4;5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;&-q;r;s;t;u;v;w;x;y;z;L#a.b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.q.r.t.t.v.v.w.x.x.G@T.U.U.U.U.U.U.U.A;B;",
+"C;~ D;m&E;F;G;H;I;J;K;}&K;L;M;L-N;N-O;P;Q;3-S-R;S;T;U;V;W;X;Y;G&Z;*$`; >;.>..>+>@>#>).$>%>%>&>*>=>->;>>>,>'>)>!>~>{>]>^>/>(>/*_>:><>[>}>|>1>2>0.a.b.b.c.d.d.}#f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.3>= 4>",
+". 5>6>H=m&7>8>9>0>M=a>b>c>d>e>f>g>h>i>j>k>l>L-m>n>o>p>q>r>s>z.t>u>v>w>x>-.>.>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.3.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.)-y>. ",
+". z>A>H=m&B>C>D>E>F>9*G>H>I>];J>K>L>M>N>6@O>P>Q>W;R>S>T>U>V>Z@W>E$X>Y>=.-.~+{+{+{+* >$Z>!.~.{.L.].^.M./.N._._.<.[.(+|.|.1.3.3.3.4.`>{+{+ ,9.9.0.0.b.b.Q.c.d.d.e.g.g.v+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U..,+,. ",
+". @,_##,m&]&$,%,&,*,8*X*=,-,k$;,>,2-n$O-6@5@,,',k$),!,~,9@8@{,],^,/,e@=.-.(,{+_,:,<,,*n#[,h@{.L.},^.M././._._.<.[.(+}.|.1.|,1,3.4.2,3,{+4, ,9.0.5,u+b.Q.c.d.d.e.f.g.v+h.i.i.6,7,l.w+n.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.8,_#9,. ",
+". . 0,a,m&m&b,c,d,e,f,X*X*g,h,i,j,k,9=6@6@6@l,m,n,o,p,c=8@q,r,E*s,t,=.=.-.u,{+v,w,x,y,$@z,P%A,8-_#B,C,D,E,F,G,H,G,F,I,J,K,+@X.L,M,4.N,{+O, ,!@P,{+Q,R,S,T,U,V,W,X,Y,Z,h.`,6#X. '.'+'@'#'$'%'&'*'='-';'>','x.x.G@T.U.U.U.U.(@''. . ",
+". . )'!'~'m&P#{']'^'/'a*X*('_'v%:'@*9=6@6@6@<'[&['}'.=8@M+|'H*1'| V+*.=.-.u,{+2'3'4'4'5'f-6'c@7'8'9'F.0'p+{+s*a'_=_#b'c'$@d',@e']*f'g'{+h'K#X.=;i'P,C@j'k'{+= l'm'= n'o'p'q'r's'C@t'u'N X.v'w'{+x'y'='z'A'x.x.G@T.U.U.U.B'C'D'. . ",
+". . . E'F'G'P#P#H'I'J'K'L'h$M'N'O'P'9=6@6@6@Q'R'S'T'U'V'W's@X'Y'Z'&.*.=.-.u,{+2'3',.'.`'$@ )f-.)]%+)@)F,#)$)%)&)*)'#=)-);)&->),)O$')t;{+h'))!)~){)])^)/)(){+_):)<)[){+})N |)1)2)3)X,4)5)6)7)8){+9)0)a)b)c)S.x.x.T.U.U.d)|@e). . . ",
+". . . . f)g)h)P#b$i)j)= k)_;V#l)m)n)9=6@6@6@6@o),,G%p)M E*q)r)s)$.%.*.=.=.t){+2'3',.'.u)v)w)S f-*$x)x)U=y)z)O$A)N c'B)C)= ,*D)D)d$E)F){+h'G)H)I)J)0.K)L)M){+N)O)P)Q){+R)_#S)^) 'T); U)='V)W)X)Y)Z){+='`) !S.x.x.T.T..!+!@!. . . . ",
+". . . . #!$!%!&!P#3#*!=!~ -!;!>!g$9=9=6@6@6@e#,!'!Z){ )!!!~!{!$.$.%.*.=.=.t){+2']!^!/!{+(!_!* :!<![!}!|!1!2!N 3!#@4!5!C#{#6!7!8!9!0!v;{+7%7$1$a!2=b!c!d!e!{+f!g!e.h!X.i!X.j!k!l!m!n!B ='o!p!q!r!s!t!_#u!v!S.x.x.T.w!x!y!z!. . . . ",
+". . . . . A!B!C!D!b$4#E!F!G!H!{+T)I!J!K!L!M!N!{+`+O!P!Q!R!S!@.$.$.%.&.=.=.T!{+N U!* {+V!W!X!Y!Z!`! ~.~+~@~/.#~{+$~%~&~*~$@F,=~+@<$-~;~{+>~,~^)#@'~c!)~!~~~{+{~]~W,{+^~/~(~c!_~:~= <~[~X.5)}~|~{+1~2~{+3~4~S.x.x.5~r,y!6~. . . . . ",
+". . . . . . 7~8~9~0~a~K@<@b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~+.+.@.$.$.%.&.=.=.q~r~s~O!t~u~v~w~x~y~z~A~'=/%+~B~/.C~D~E~F~G~}.H~I~J~K~L~M~N~O~[=P~Q~R~S~T~U~V~W~{+X~Y~Z~`~ {.{+{@{#{${%{&{*{={-{;{>{,{'{){!{~{{{w.]{^{/{({_{. . . . . . ",
+". . . . . . . . :{i%<{[{<@D+}{|{1{2{3{4{5{6{7{8{9{0{ ...+.+.@.#.$.%.&.*.=.-.a{b{b{c{d{e{f{!.~.g{%>h{i{j{/./.N.k{l{m{[.}.|.n{o{p{q{r{s{t{u{v{w{x{C=y{z{A{B{{+C{D{E{F{G{H{h.I{J{K{L{M{+'N{O{P{Q{R{S{T{U{V{W{X{Y{N Z{. . . . . . . . ",
+". . . . . . . . . 1+`{_# ].]+]5+++@+I.I.J.W X Y Z ` . .+.+.@.#.$.$.%.*.=.-.-.>.>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.3.4.5.6.7.8.9.9.0.0.@]#]d$d$$]%]e.g.g._+h.i.i.j.k.l.m.n.n.p.q.R.s.&]*]=]_#-];]. . . . . . . . . ",
+". . . . . . . . . . . >],]']F.)]!]~]{]]]^]/]/](]_]:]<]<]<]<][]}]Y'Y'|]1]1]1]1]2]2]k+k+k+k+3]3]4]<!<!<!5]6]6]7]8]8]9]9]0]a]b]c]d]d]d]e]f]a%a%a%I)I)g]g]h]i]j]k]l]m]n]o]o]p]q]r]r]r]s]s]t]u]U)v]Z{w]x]X.|@y]z]. . . . . . . . . . . ",
+". . . . . . . . . . . . . . A]B]C]D]E]F]G]G]G]H]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]+;+;+;+;J]J]J]J]K]K]K]K]K]K]K]K]K]K]K]K]K]K]K]K]w@w@w@w@w@w@w@w@w@w@L]L]w@w@L]L]L]L]M]M]N]N]N]N]N]O]P]Q]R]S]T]. . . . . . . . . . . . . . "};
--- /dev/null
+/* XPM */
+static char * rme_xpm[] = {
+"113 35 2300 2",
+" c None",
+". c #030505",
+"+ c #050706",
+"@ c #0C0C0B",
+"# c #0B0C0B",
+"$ c #0B0B0B",
+"% c #0A0B0B",
+"& c #0B0B0C",
+"* c #0B0C0C",
+"= c #0C0B0B",
+"- c #0C0A0C",
+"; c #0D0A0C",
+"> c #0D0B0D",
+", c #0A0B0A",
+"' c #0A0A0B",
+") c #0B0A0B",
+"! c #0B0A0A",
+"~ c #0B0B0A",
+"{ c #0A0A0C",
+"] c #0A0A0A",
+"^ c #090A0A",
+"/ c #0A090C",
+"( c #0B0A0C",
+"_ c #09090B",
+": c #090A0C",
+"< c #0B0A0D",
+"[ c #0A0A0D",
+"} c #0B090C",
+"| c #0A0B0D",
+"1 c #0B0C0E",
+"2 c #050505",
+"3 c #020202",
+"4 c #040604",
+"5 c #1E201F",
+"6 c #646768",
+"7 c #6E7374",
+"8 c #717676",
+"9 c #737979",
+"0 c #767B7B",
+"a c #797D7E",
+"b c #7D7E80",
+"c c #7D7E81",
+"d c #7D7F81",
+"e c #7D8083",
+"f c #7D8284",
+"g c #7F8183",
+"h c #808182",
+"i c #808183",
+"j c #7E8183",
+"k c #7D8183",
+"l c #7C8082",
+"m c #7B7F82",
+"n c #7A7E82",
+"o c #797D81",
+"p c #777D7F",
+"q c #767B7E",
+"r c #767B7D",
+"s c #757A7D",
+"t c #747A7C",
+"u c #74797C",
+"v c #73797B",
+"w c #727879",
+"x c #717677",
+"y c #707676",
+"z c #707575",
+"A c #6F7575",
+"B c #6E7474",
+"C c #6D7373",
+"D c #6E7174",
+"E c #6E7175",
+"F c #6D7073",
+"G c #6C6F72",
+"H c #6B6E6F",
+"I c #6A6E6E",
+"J c #6A6D6F",
+"K c #6A6D6E",
+"L c #696D6D",
+"M c #686C6E",
+"N c #686B6D",
+"O c #686B6C",
+"P c #666A6B",
+"Q c #65696A",
+"R c #646869",
+"S c #636769",
+"T c #636668",
+"U c #626668",
+"V c #626667",
+"W c #626567",
+"X c #626566",
+"Y c #616466",
+"Z c #5F6264",
+"` c #5D6062",
+" . c #5C5F62",
+".. c #5B5E60",
+"+. c #5B5F61",
+"@. c #5C6062",
+"#. c #5D6163",
+"$. c #5B6062",
+"%. c #5C6063",
+"&. c #5B6064",
+"*. c #5A5F62",
+"=. c #595D62",
+"-. c #595D60",
+";. c #595D5F",
+">. c #5A5E60",
+",. c #5A5D60",
+"'. c #595C5F",
+"). c #595B5F",
+"!. c #595C5E",
+"~. c #5A5C5F",
+"{. c #595B5E",
+"]. c #585C5E",
+"^. c #585D5F",
+"/. c #575D5E",
+"(. c #575D5F",
+"_. c #585E5F",
+":. c #575B5D",
+"<. c #545759",
+"[. c #232424",
+"}. c #040404",
+"|. c #050604",
+"1. c #36393A",
+"2. c #9EA5A9",
+"3. c #A3AEB2",
+"4. c #ADB9BC",
+"5. c #B6C2C6",
+"6. c #C0CDCF",
+"7. c #C8D6D9",
+"8. c #CDDDE2",
+"9. c #D0E1E5",
+"0. c #D3E3E7",
+"a. c #DAE8ED",
+"b. c #E1ECF2",
+"c. c #E1EDF2",
+"d. c #E0ECF1",
+"e. c #DDEDEF",
+"f. c #DEEEF0",
+"g. c #DFEFF1",
+"h. c #DBEDEE",
+"i. c #D8EBEE",
+"j. c #D7EAEE",
+"k. c #D7E9ED",
+"l. c #D5E7EB",
+"m. c #D6E5E9",
+"n. c #D4E2E6",
+"o. c #D2DFE4",
+"p. c #CDDAE0",
+"q. c #CCD8DD",
+"r. c #CAD6DB",
+"s. c #C7D3D8",
+"t. c #C5D0D6",
+"u. c #C1CCD2",
+"v. c #BECACF",
+"w. c #BCC7CD",
+"x. c #B6C3C6",
+"y. c #B3C0C3",
+"z. c #B2BEC1",
+"A. c #AFBBBE",
+"B. c #AEB9BD",
+"C. c #ABB7BA",
+"D. c #A8B5B8",
+"E. c #A6B1B5",
+"F. c #A4AEB4",
+"G. c #A4AEB5",
+"H. c #A2ABB1",
+"I. c #9DA7AC",
+"J. c #9AA3A7",
+"K. c #98A2A6",
+"L. c #99A2A7",
+"M. c #969FA3",
+"N. c #949EA2",
+"O. c #939CA0",
+"P. c #929C9F",
+"Q. c #8F9A9C",
+"R. c #8E989B",
+"S. c #8C9699",
+"T. c #899296",
+"U. c #879094",
+"V. c #838C90",
+"W. c #80888C",
+"X. c #7D858A",
+"Y. c #7C8589",
+"Z. c #7B8388",
+"`. c #788185",
+" + c #768084",
+".+ c #757F82",
+"++ c #747D81",
+"@+ c #727C7E",
+"#+ c #717B7D",
+"$+ c #707A7C",
+"%+ c #6D777A",
+"&+ c #6A7477",
+"*+ c #697376",
+"=+ c #687375",
+"-+ c #687274",
+";+ c #697275",
+">+ c #6B7476",
+",+ c #6B7477",
+"'+ c #6B7478",
+")+ c #697177",
+"!+ c #677075",
+"~+ c #676F74",
+"{+ c #656E72",
+"]+ c #646D70",
+"^+ c #636C6F",
+"/+ c #626C6E",
+"(+ c #616A6D",
+"_+ c #60696C",
+":+ c #5F676B",
+"<+ c #5F6569",
+"[+ c #5E6267",
+"}+ c #5C6166",
+"|+ c #5D6267",
+"1+ c #5C6266",
+"2+ c #5B6366",
+"3+ c #5A6266",
+"4+ c #5A6165",
+"5+ c #586164",
+"6+ c #586265",
+"7+ c #576264",
+"8+ c #5A6265",
+"9+ c #3A3B3C",
+"0+ c #070707",
+"a+ c #040403",
+"b+ c #2D3133",
+"c+ c #919BA0",
+"d+ c #9CA9AF",
+"e+ c #A8B7BB",
+"f+ c #B2C3C7",
+"g+ c #BDCDD1",
+"h+ c #C5D5DA",
+"i+ c #CADAE2",
+"j+ c #CEDEE6",
+"k+ c #D1E2E9",
+"l+ c #D6E5EC",
+"m+ c #D9E8EF",
+"n+ c #DCEAF2",
+"o+ c #DCEBF2",
+"p+ c #DBEBF0",
+"q+ c #D9EAEF",
+"r+ c #DAEBEF",
+"s+ c #D7E8ED",
+"t+ c #D4E6EC",
+"u+ c #D1E4EB",
+"v+ c #CFE2E9",
+"w+ c #CDE0E7",
+"x+ c #CEE0E6",
+"y+ c #CCDDE3",
+"z+ c #C9DAE0",
+"A+ c #C6D7DD",
+"B+ c #C5D3DB",
+"C+ c #C3D2D9",
+"D+ c #C0CFD6",
+"E+ c #BBCAD1",
+"F+ c #B8C7CE",
+"G+ c #B7C5CD",
+"H+ c #B6C4CB",
+"I+ c #B2C2C7",
+"J+ c #B0C1C5",
+"K+ c #AFC0C3",
+"L+ c #ACBCBF",
+"M+ c #AAB9BD",
+"N+ c #A5B4B8",
+"O+ c #A1AFB4",
+"P+ c #9FACB2",
+"Q+ c #9DAAB1",
+"R+ c #9AA7AE",
+"S+ c #96A3AA",
+"T+ c #94A2A7",
+"U+ c #93A0A5",
+"V+ c #919FA4",
+"W+ c #919EA3",
+"X+ c #8E9CA0",
+"Y+ c #8E9BA0",
+"Z+ c #8D9A9F",
+"`+ c #89979B",
+" @ c #869396",
+".@ c #849295",
+"+@ c #849195",
+"@@ c #828E92",
+"#@ c #7F8A90",
+"$@ c #7C878D",
+"%@ c #7A858A",
+"&@ c #768288",
+"*@ c #768186",
+"=@ c #747F85",
+"-@ c #737E84",
+";@ c #717E83",
+">@ c #707D82",
+",@ c #6E7B80",
+"'@ c #6C7A7E",
+")@ c #69767A",
+"!@ c #677477",
+"~@ c #667376",
+"{@ c #647276",
+"]@ c #637074",
+"^@ c #616E72",
+"/@ c #606C70",
+"(@ c #5E6A6E",
+"_@ c #606A6F",
+":@ c #606B70",
+"<@ c #606A6E",
+"[@ c #5E696D",
+"}@ c #5F6A6C",
+"|@ c #606B6E",
+"1@ c #616B6E",
+"2@ c #5F6A6D",
+"3@ c #5C676B",
+"4@ c #5B6669",
+"5@ c #5C676A",
+"6@ c #5A6669",
+"7@ c #596569",
+"8@ c #586468",
+"9@ c #586267",
+"0@ c #576065",
+"a@ c #575E64",
+"b@ c #555D63",
+"c@ c #565D62",
+"d@ c #555C61",
+"e@ c #555D61",
+"f@ c #565B62",
+"g@ c #565A61",
+"h@ c #535A5F",
+"i@ c #525A5E",
+"j@ c #51595D",
+"k@ c #50585C",
+"l@ c #4D565B",
+"m@ c #4D565A",
+"n@ c #4D575A",
+"o@ c #4E575A",
+"p@ c #2C2E2F",
+"q@ c #060607",
+"r@ c #040303",
+"s@ c #2D3032",
+"t@ c #919B9F",
+"u@ c #9DAAAE",
+"v@ c #ABB9BC",
+"w@ c #B4C5CA",
+"x@ c #BDCDD2",
+"y@ c #ACB8BB",
+"z@ c #878F95",
+"A@ c #848D92",
+"B@ c #848D93",
+"C@ c #879095",
+"D@ c #889196",
+"E@ c #889197",
+"F@ c #889297",
+"G@ c #899297",
+"H@ c #868F94",
+"I@ c #858F94",
+"J@ c #848F94",
+"K@ c #838E93",
+"L@ c #828D92",
+"M@ c #828C91",
+"N@ c #818B90",
+"O@ c #808B90",
+"P@ c #80898E",
+"Q@ c #7E878D",
+"R@ c #7C868B",
+"S@ c #7A8489",
+"T@ c #788186",
+"U@ c #778085",
+"V@ c #777F85",
+"W@ c #768085",
+"X@ c #7D8A8D",
+"Y@ c #A6B5B7",
+"Z@ c #B2C3C4",
+"`@ c #B0BFC1",
+" # c #AEBBBF",
+".# c #AAB4BA",
+"+# c #868F95",
+"@# c #6E777A",
+"## c #6A7377",
+"$# c #677073",
+"%# c #626B6E",
+"&# c #616A6C",
+"*# c #606A6C",
+"=# c #60696B",
+"-# c #5F696B",
+";# c #5E686B",
+"># c #5E6769",
+",# c #5C6568",
+"'# c #596265",
+")# c #565F62",
+"!# c #555E60",
+"~# c #535C5F",
+"{# c #525B5D",
+"]# c #525A5D",
+"^# c #525B5E",
+"/# c #515B5D",
+"(# c #535C5E",
+"_# c #5F696D",
+":# c #6B757A",
+"<# c #646F74",
+"[# c #636E73",
+"}# c #677175",
+"|# c #565E62",
+"1# c #4E5659",
+"2# c #4E5558",
+"3# c #4D5457",
+"4# c #4D5557",
+"5# c #4E5557",
+"6# c #4C5456",
+"7# c #4A5254",
+"8# c #495153",
+"9# c #4A5354",
+"0# c #4A5355",
+"a# c #4A5356",
+"b# c #495154",
+"c# c #484F52",
+"d# c #474E51",
+"e# c #474E50",
+"f# c #484D50",
+"g# c #494E51",
+"h# c #4A4E52",
+"i# c #494D52",
+"j# c #4A4D52",
+"k# c #4B4F53",
+"l# c #4D5155",
+"m# c #555A5D",
+"n# c #5D6266",
+"o# c #51575B",
+"p# c #50565A",
+"q# c #505559",
+"r# c #2B2D2F",
+"s# c #040406",
+"t# c #2C2F31",
+"u# c #8F989C",
+"v# c #99A6AB",
+"w# c #A5B3B8",
+"x# c #ADBDC4",
+"y# c #ADBABF",
+"z# c #4D5454",
+"A# c #1C1F1F",
+"B# c #171A1B",
+"C# c #181B1C",
+"D# c #17191B",
+"E# c #181A1B",
+"F# c #18191B",
+"G# c #171A1A",
+"H# c #181A1C",
+"I# c #181B1B",
+"J# c #17191A",
+"K# c #1D2123",
+"L# c #5D6467",
+"M# c #B5C0C2",
+"N# c #ADBBBE",
+"O# c #A9B4B8",
+"P# c #787F83",
+"Q# c #313538",
+"R# c #161919",
+"S# c #171A19",
+"T# c #161918",
+"U# c #151817",
+"V# c #151818",
+"W# c #161818",
+"X# c #141717",
+"Y# c #141716",
+"Z# c #141817",
+"`# c #2D3132",
+" $ c #61686D",
+".$ c #6D787C",
+"+$ c #677074",
+"@$ c #424649",
+"#$ c #202222",
+"$$ c #171819",
+"%$ c #171818",
+"&$ c #161819",
+"*$ c #16181A",
+"=$ c #151819",
+"-$ c #171919",
+";$ c #18181B",
+">$ c #18191A",
+",$ c #191A1C",
+"'$ c #191B1D",
+")$ c #1B1C1E",
+"!$ c #313335",
+"~$ c #606467",
+"{$ c #565B5F",
+"]$ c #53585C",
+"^$ c #54595C",
+"/$ c #2C2F32",
+"($ c #040506",
+"_$ c #95A2A8",
+":$ c #A1AEB6",
+"<$ c #A6B4BC",
+"[$ c #798286",
+"}$ c #141616",
+"|$ c #000100",
+"1$ c #000000",
+"2$ c #010000",
+"3$ c #020001",
+"4$ c #2D3234",
+"5$ c #B2BDC0",
+"6$ c #ACBABE",
+"7$ c #9AA5A9",
+"8$ c #3E4345",
+"9$ c #070808",
+"0$ c #010101",
+"a$ c #000001",
+"b$ c #525659",
+"c$ c #798586",
+"d$ c #596163",
+"e$ c #17181B",
+"f$ c #020102",
+"g$ c #010001",
+"h$ c #010102",
+"i$ c #1A1B1C",
+"j$ c #595E62",
+"k$ c #555A5E",
+"l$ c #565B5E",
+"m$ c #2F3134",
+"n$ c #040405",
+"o$ c #040203",
+"p$ c #2A2F30",
+"q$ c #869195",
+"r$ c #8F9DA2",
+"s$ c #9BA9B0",
+"t$ c #A0ADB5",
+"u$ c #61686B",
+"v$ c #0E0F0E",
+"w$ c #010100",
+"x$ c #010202",
+"y$ c #000101",
+"z$ c #000202",
+"A$ c #000201",
+"B$ c #000002",
+"C$ c #010203",
+"D$ c #020101",
+"E$ c #292D2E",
+"F$ c #AFBABE",
+"G$ c #A9B7BD",
+"H$ c #929CA1",
+"I$ c #333738",
+"J$ c #050403",
+"K$ c #020204",
+"L$ c #010104",
+"M$ c #000102",
+"N$ c #010103",
+"O$ c #000103",
+"P$ c #000104",
+"Q$ c #010105",
+"R$ c #000003",
+"S$ c #000204",
+"T$ c #060608",
+"U$ c #515658",
+"V$ c #808C8D",
+"W$ c #555C5F",
+"X$ c #121215",
+"Y$ c #010205",
+"Z$ c #010201",
+"`$ c #000203",
+" % c #040304",
+".% c #313132",
+"+% c #838588",
+"@% c #5B5F64",
+"#% c #575B60",
+"$% c #585C60",
+"%% c #2E3034",
+"&% c #040302",
+"*% c #28302F",
+"=% c #808E91",
+"-% c #8A989E",
+";% c #97A5AB",
+">% c #9CAAB0",
+",% c #676F71",
+"'% c #0E1110",
+")% c #161615",
+"!% c #979A9A",
+"~% c #B9C0C2",
+"{% c #BAC2C3",
+"]% c #BBC3C4",
+"^% c #BCC3C4",
+"/% c #BCC2C4",
+"(% c #BDC2C4",
+"_% c #BBC2C3",
+":% c #B9C1C2",
+"<% c #B8C0C1",
+"[% c #B9C0C1",
+"}% c #B8BFC1",
+"|% c #B7BEC1",
+"1% c #B7BEC0",
+"2% c #B5BDBF",
+"3% c #B2B9BC",
+"4% c #B3B7BB",
+"5% c #B2B6BA",
+"6% c #AEB3B6",
+"7% c #4D4E50",
+"8% c #050507",
+"9% c #292B2C",
+"0% c #AEB6BD",
+"a% c #AAB7BE",
+"b% c #383C3D",
+"c% c #040603",
+"d% c #2F3130",
+"e% c #A9ADB0",
+"f% c #A5A9AE",
+"g% c #A2A8AA",
+"h% c #A1A7A8",
+"i% c #A0A5A7",
+"j% c #9FA5A7",
+"k% c #9EA6A8",
+"l% c #9EA6A9",
+"m% c #9DA4A7",
+"n% c #9CA4A7",
+"o% c #83878A",
+"p% c #2A2A2C",
+"q% c #030302",
+"r% c #454747",
+"s% c #899090",
+"t% c #959A9C",
+"u% c #93999B",
+"v% c #92999A",
+"w% c #92989A",
+"x% c #929799",
+"y% c #889092",
+"z% c #121416",
+"A% c #060606",
+"B% c #525658",
+"C% c #828D90",
+"D% c #545B5E",
+"E% c #121213",
+"F% c #080709",
+"G% c #525558",
+"H% c #8F9798",
+"I% c #8A9292",
+"J% c #889090",
+"K% c #868C8E",
+"L% c #84898B",
+"M% c #84898A",
+"N% c #85898B",
+"O% c #858A8C",
+"P% c #858B8C",
+"Q% c #838A8C",
+"R% c #83898B",
+"S% c #828889",
+"T% c #83888A",
+"U% c #828789",
+"V% c #818688",
+"W% c #808586",
+"X% c #7E8484",
+"Y% c #7F8484",
+"Z% c #7F8585",
+"`% c #7F8384",
+" & c #818586",
+".& c #86898B",
+"+& c #737679",
+"@& c #56595E",
+"#& c #55595D",
+"$& c #2C2E31",
+"%& c #030406",
+"&& c #262E2D",
+"*& c #7A888A",
+"=& c #859298",
+"-& c #909EA4",
+";& c #94A2A8",
+">& c #666F70",
+",& c #101211",
+"'& c #1D1E1D",
+")& c #B6BEC0",
+"!& c #C5D2D9",
+"~& c #CAD9E0",
+"{& c #CEDDE4",
+"]& c #CFDFE6",
+"^& c #D0DFE6",
+"/& c #D2E2E8",
+"(& c #D1E0E7",
+"_& c #CFDEE5",
+":& c #CCDBE2",
+"<& c #C8D7DE",
+"[& c #C4D3DA",
+"}& c #C0D0D6",
+"|& c #C1D0D7",
+"1& c #C0CFD5",
+"2& c #BFCED4",
+"3& c #BDCCD3",
+"4& c #BCCBD2",
+"5& c #BCCAD0",
+"6& c #BAC9CD",
+"7& c #B3C2C4",
+"8& c #5B6264",
+"9& c #07080A",
+"0& c #AFB8BE",
+"a& c #AAB7BD",
+"b& c #96A1A5",
+"c& c #363A3C",
+"d& c #030503",
+"e& c #505656",
+"f& c #A6B1B4",
+"g& c #9AA8AD",
+"h& c #98A5AA",
+"i& c #96A3A8",
+"j& c #95A2A7",
+"k& c #94A1A7",
+"l& c #94A1A9",
+"m& c #929FA7",
+"n& c #7D8687",
+"o& c #020203",
+"p& c #636969",
+"q& c #849191",
+"r& c #808C8E",
+"s& c #7A878B",
+"t& c #78858B",
+"u& c #768489",
+"v& c #758288",
+"w& c #737F85",
+"x& c #758086",
+"y& c #6C7578",
+"z& c #141617",
+"A& c #060506",
+"B& c #515556",
+"C& c #818C8E",
+"D& c #545C5E",
+"E& c #111313",
+"F& c #707577",
+"G& c #647272",
+"H& c #637271",
+"I& c #647072",
+"J& c #636E71",
+"K& c #606C6F",
+"L& c #5F6B6E",
+"M& c #5F6A6F",
+"N& c #5D686E",
+"O& c #5C676D",
+"P& c #5C666D",
+"Q& c #5D666D",
+"R& c #5E656D",
+"S& c #5D656D",
+"T& c #5B646B",
+"U& c #5B666C",
+"V& c #5B666A",
+"W& c #5C6869",
+"X& c #5C6868",
+"Y& c #5B6767",
+"Z& c #596565",
+"`& c #576464",
+" * c #566162",
+".* c #575F61",
+"+* c #575C60",
+"@* c #565C60",
+"#* c #242C2B",
+"$* c #778587",
+"%* c #849196",
+"&* c #8F9CA2",
+"** c #6B7475",
+"=* c #111312",
+"-* c #1B1D1E",
+";* c #B1BDC3",
+">* c #C2D3DB",
+",* c #C6D7DE",
+"'* c #C8D8E0",
+")* c #CBDBE2",
+"!* c #CCDEE5",
+"~* c #CADCE3",
+"{* c #C7D9DF",
+"]* c #C7D8DF",
+"^* c #C4D5DC",
+"/* c #C3D3DA",
+"(* c #C2D2D9",
+"_* c #C1D2D8",
+":* c #BFD1D6",
+"<* c #BCCDD3",
+"[* c #B8C9D0",
+"}* c #B7C8CE",
+"|* c #B5C6CC",
+"1* c #B4C6CB",
+"2* c #B2C4C8",
+"3* c #ACBBBF",
+"4* c #585E62",
+"5* c #07070B",
+"6* c #292B2D",
+"7* c #AFB7BE",
+"8* c #95A0A4",
+"9* c #35393B",
+"0* c #505457",
+"a* c #AAB6BB",
+"b* c #9FAFB5",
+"c* c #9EACB2",
+"d* c #9DAAAF",
+"e* c #98A6AA",
+"f* c #95A3A8",
+"g* c #94A1A8",
+"h* c #929EA6",
+"i* c #909DA3",
+"j* c #758282",
+"k* c #272A2B",
+"l* c #010002",
+"m* c #636669",
+"n* c #869394",
+"o* c #829295",
+"p* c #818D93",
+"q* c #7E8A8F",
+"r* c #7C888D",
+"s* c #79858A",
+"t* c #717C81",
+"u* c #707A7F",
+"v* c #687174",
+"w* c #111214",
+"x* c #828E90",
+"y* c #565D5F",
+"z* c #121313",
+"A* c #707477",
+"B* c #647173",
+"C* c #657274",
+"D* c #667375",
+"E* c #677374",
+"F* c #657071",
+"G* c #636E6F",
+"H* c #606C6D",
+"I* c #5D676D",
+"J* c #5D676C",
+"K* c #5E676D",
+"L* c #5E686E",
+"M* c #5E686D",
+"N* c #5B666B",
+"O* c #5A646A",
+"P* c #596367",
+"Q* c #596467",
+"R* c #5A6568",
+"S* c #5A6567",
+"T* c #596567",
+"U* c #586466",
+"V* c #576365",
+"W* c #576163",
+"X* c #576062",
+"Y* c #565F61",
+"Z* c #575F62",
+"`* c #303335",
+" = c #050506",
+".= c #020302",
+"+= c #1A1E1E",
+"@= c #676F72",
+"#= c #6F787B",
+"$= c #778082",
+"%= c #585E5E",
+"&= c #0E100F",
+"*= c #1A1D1F",
+"== c #AEBAC0",
+"-= c #BDCED5",
+";= c #AFBCC2",
+">= c #98A2A7",
+",= c #95A1A6",
+"'= c #94A0A4",
+")= c #93A0A3",
+"!= c #95A1A5",
+"~= c #A7B6B9",
+"{= c #BBCBCE",
+"]= c #BACCD0",
+"^= c #B6C8CD",
+"/= c #B3C3C7",
+"(= c #B2C2C5",
+"_= c #AFBEC1",
+":= c #96A2A6",
+"<= c #848C90",
+"[= c #45474A",
+"}= c #060609",
+"|= c #A8B5BC",
+"1= c #959FA4",
+"2= c #030002",
+"3= c #4F5356",
+"4= c #A3AFB4",
+"5= c #99A8AE",
+"6= c #96A4A7",
+"7= c #95A2A6",
+"8= c #94A1A6",
+"9= c #94A0A5",
+"0= c #929DA2",
+"a= c #8E9B9E",
+"b= c #748081",
+"c= c #25292A",
+"d= c #859094",
+"e= c #849094",
+"f= c #838F92",
+"g= c #7C888A",
+"h= c #798486",
+"i= c #747D82",
+"j= c #727B80",
+"k= c #707A7E",
+"l= c #838E91",
+"m= c #575E60",
+"n= c #121314",
+"o= c #727679",
+"p= c #6B7678",
+"q= c #687377",
+"r= c #565E5F",
+"s= c #555E5E",
+"t= c #565E5E",
+"u= c #575F5F",
+"v= c #555D5E",
+"w= c #565D5E",
+"x= c #535C5D",
+"y= c #535C5C",
+"z= c #525C5C",
+"A= c #525B5B",
+"B= c #535A5C",
+"C= c #535A5B",
+"D= c #52595A",
+"E= c #51585A",
+"F= c #515859",
+"G= c #505859",
+"H= c #4E5758",
+"I= c #4E5658",
+"J= c #4F5758",
+"K= c #505858",
+"L= c #525859",
+"M= c #2B2D2E",
+"N= c #181818",
+"O= c #1F1F1F",
+"P= c #1F2020",
+"Q= c #202221",
+"R= c #1A1C1F",
+"S= c #ABB6BB",
+"T= c #AEBEC3",
+"U= c #282B2B",
+"V= c #212325",
+"W= c #212426",
+"X= c #212425",
+"Y= c #202324",
+"Z= c #202323",
+"`= c #1F2324",
+" - c #222527",
+".- c #42474A",
+"+- c #A3B2B7",
+"@- c #B4C6CD",
+"#- c #B4C5CB",
+"$- c #B2C4C7",
+"%- c #9BA9AB",
+"&- c #4B5053",
+"*- c #201F22",
+"=- c #282A2C",
+"-- c #AAB3B9",
+";- c #A6B3BA",
+">- c #35393A",
+",- c #4D5355",
+"'- c #A1AFB3",
+")- c #99A8AF",
+"!- c #9AA7AD",
+"~- c #98A5AB",
+"{- c #93A0A6",
+"]- c #929FA5",
+"^- c #919EA4",
+"/- c #8E9BA1",
+"(- c #8C989D",
+"_- c #757D81",
+":- c #626768",
+"<- c #849095",
+"[- c #849092",
+"}- c #818E8F",
+"|- c #7E8C8D",
+"1- c #7C8A8B",
+"2- c #7A8789",
+"3- c #7A868A",
+"4- c #788389",
+"5- c #747F84",
+"6- c #6B7577",
+"7- c #111315",
+"8- c #535758",
+"9- c #848F92",
+"0- c #585F62",
+"a- c #121414",
+"b- c #72777A",
+"c- c #6B787A",
+"d- c #687476",
+"e- c #2B2E2F",
+"f- c #1F2124",
+"g- c #202225",
+"h- c #212326",
+"i- c #212423",
+"j- c #212422",
+"k- c #212322",
+"l- c #202322",
+"m- c #202121",
+"n- c #212221",
+"o- c #202120",
+"p- c #030303",
+"q- c #191A1F",
+"r- c #A5B0B5",
+"s- c #98A7AB",
+"t- c #3B4243",
+"u- c #040204",
+"v- c #151619",
+"w- c #43484B",
+"x- c #798488",
+"y- c #A8B7BD",
+"z- c #B3C4CA",
+"A- c #AEC1C6",
+"B- c #849397",
+"C- c #272B2F",
+"D- c #040305",
+"E- c #333537",
+"F- c #B0B8BF",
+"G- c #939EA2",
+"H- c #35383A",
+"I- c #99A7AE",
+"J- c #99A6AC",
+"K- c #96A3A9",
+"L- c #8D999E",
+"M- c #777F83",
+"N- c #020201",
+"O- c #030301",
+"P- c #828F91",
+"Q- c #808D8E",
+"R- c #7D8B8C",
+"S- c #7B898A",
+"T- c #7B898B",
+"U- c #7D898D",
+"V- c #585F61",
+"W- c #717779",
+"X- c #6A7779",
+"Y- c #637072",
+"Z- c #343B3C",
+"`- c #050809",
+" ; c #020003",
+".; c #020103",
+"+; c #020000",
+"@; c #040101",
+"#; c #030101",
+"$; c #030000",
+"%; c #030001",
+"&; c #040001",
+"*; c #040102",
+"=; c #191A1E",
+"-; c #A5B0B4",
+";; c #5E6364",
+">; c #090908",
+",; c #010200",
+"'; c #1D1E21",
+"); c #454C4D",
+"!; c #7F8A8C",
+"~; c #A5B5B8",
+"{; c #A5B2B5",
+"]; c #5A5E61",
+"^; c #28272A",
+"/; c #242425",
+"(; c #242526",
+"_; c #393A3A",
+":; c #818385",
+"<; c #ABB4BB",
+"[; c #A1AEB5",
+"}; c #34383A",
+"|; c #4D5456",
+"1; c #A4B1B6",
+"2; c #8C999F",
+"3; c #8A979D",
+"4; c #89959A",
+"5; c #838B8F",
+"6; c #45494B",
+"7; c #060705",
+"8; c #0B0B09",
+"9; c #717778",
+"0; c #889498",
+"a; c #7A8889",
+"b; c #798789",
+"c; c #7A868B",
+"d; c #79848A",
+"e; c #121315",
+"f; c #586062",
+"g; c #717679",
+"h; c #697678",
+"i; c #677476",
+"j; c #454C4E",
+"k; c #0F1213",
+"l; c #030405",
+"m; c #020304",
+"n; c #030304",
+"o; c #020303",
+"p; c #050404",
+"q; c #050304",
+"r; c #050303",
+"s; c #030305",
+"t; c #212324",
+"u; c #707677",
+"v; c #777E80",
+"w; c #7B8384",
+"x; c #55595A",
+"y; c #0E0E0E",
+"z; c #18191D",
+"A; c #9BA6AB",
+"B; c #B1BEC2",
+"C; c #B0B6B8",
+"D; c #9A9FA0",
+"E; c #979B9C",
+"F; c #969C9C",
+"G; c #979D9C",
+"H; c #989E9D",
+"I; c #979D9D",
+"J; c #969D9C",
+"K; c #959C9B",
+"L; c #949A9A",
+"M; c #797E7E",
+"N; c #303232",
+"O; c #070807",
+"P; c #020301",
+"Q; c #030202",
+"R; c #1C201F",
+"S; c #485250",
+"T; c #8B9797",
+"U; c #A5AFB2",
+"V; c #9FA6AB",
+"W; c #9BA2A8",
+"X; c #98A2A4",
+"Y; c #98A3A5",
+"Z; c #A6AFB3",
+"`; c #A2ABB3",
+" > c #9DA9B0",
+".> c #8C969A",
+"+> c #333638",
+"@> c #4D5153",
+"#> c #A4B0B3",
+"$> c #9AA9AE",
+"%> c #8E9B9F",
+"&> c #909C9E",
+"*> c #8E9899",
+"=> c #80898A",
+"-> c #818A8A",
+";> c #8E999A",
+">> c #879496",
+",> c #808D90",
+"'> c #7C8A8E",
+")> c #7B898D",
+"!> c #7B888D",
+"~> c #7A868C",
+"{> c #6C7779",
+"]> c #050606",
+"^> c #525959",
+"/> c #869294",
+"(> c #586163",
+"_> c #687677",
+":> c #707C7D",
+"<> c #747E7F",
+"[> c #75797B",
+"}> c #75787A",
+"|> c #757879",
+"1> c #73787A",
+"2> c #73797A",
+"3> c #747A7B",
+"4> c #74797B",
+"5> c #74797A",
+"6> c #75777A",
+"7> c #737678",
+"8> c #737778",
+"9> c #737677",
+"0> c #747679",
+"a> c #6E7476",
+"b> c #6D7575",
+"c> c #6C7474",
+"d> c #6A7071",
+"e> c #2E3030",
+"f> c #040507",
+"g> c #232729",
+"h> c #6D7679",
+"i> c #747E81",
+"j> c #7A8688",
+"k> c #686F70",
+"l> c #131313",
+"m> c #17191D",
+"n> c #97A3A7",
+"o> c #ABBBBD",
+"p> c #B4C0C2",
+"q> c #B6C2C5",
+"r> c #B6C4C7",
+"s> c #B9C7CA",
+"t> c #BAC9CB",
+"u> c #BBCACC",
+"v> c #BBC9CD",
+"w> c #BAC9CC",
+"x> c #B9C6C9",
+"y> c #B5BEBF",
+"z> c #777C7C",
+"A> c #1A1B1B",
+"B> c #090B0B",
+"C> c #1D2021",
+"D> c #545A5E",
+"E> c #97A1A5",
+"F> c #AAB6BC",
+"G> c #A7B8BA",
+"H> c #A3B5B6",
+"I> c #9FAEB3",
+"J> c #9FACB3",
+"K> c #8F999E",
+"L> c #343739",
+"M> c #4C5050",
+"N> c #A0ABAF",
+"O> c #94A3A8",
+"P> c #919FA5",
+"Q> c #8C999E",
+"R> c #8B9899",
+"S> c #8C999A",
+"T> c #8A9798",
+"U> c #869495",
+"V> c #839192",
+"W> c #818F90",
+"X> c #7E8B90",
+"Y> c #7A878D",
+"Z> c #79858B",
+"`> c #768187",
+" , c #6E797A",
+"., c #111415",
+"+, c #535A5A",
+"@, c #869395",
+"#, c #596364",
+"$, c #121415",
+"%, c #727779",
+"&, c #6C787A",
+"*, c #677576",
+"=, c #6A7879",
+"-, c #6E7B7C",
+";, c #6E7A7B",
+">, c #6C7678",
+",, c #6A7476",
+"', c #6D7678",
+"), c #6E7879",
+"!, c #6E7678",
+"~, c #6C7477",
+"{, c #6B7375",
+"], c #6A7174",
+"^, c #6B7275",
+"/, c #6B7376",
+"(, c #697073",
+"_, c #666F72",
+":, c #657072",
+"<, c #636E70",
+"[, c #626D6E",
+"}, c #333637",
+"|, c #020406",
+"1, c #212527",
+"2, c #6D787B",
+"3, c #727E81",
+"4, c #788488",
+"5, c #656B6D",
+"6, c #111211",
+"7, c #17181C",
+"8, c #939FA4",
+"9, c #A6B7BB",
+"0, c #ACBCC0",
+"a, c #AFBFC3",
+"b, c #B2C4CA",
+"c, c #B3C6CC",
+"d, c #B4C6CC",
+"e, c #B2C5CB",
+"f, c #B3C5CB",
+"g, c #B3C4C7",
+"h, c #BBC8CA",
+"i, c #C3CACB",
+"j, c #67696A",
+"k, c #141414",
+"l, c #080707",
+"m, c #16191B",
+"n, c #596264",
+"o, c #9AA7A8",
+"p, c #A1AFB1",
+"q, c #A1B1B5",
+"r, c #A0B1B6",
+"s, c #A1B0B6",
+"t, c #939DA1",
+"u, c #36393B",
+"v, c #4C5151",
+"w, c #A2ACB0",
+"x, c #95A4A9",
+"y, c #8D9AA0",
+"z, c #8B989E",
+"A, c #8A989C",
+"B, c #889698",
+"C, c #879596",
+"D, c #859394",
+"E, c #808E8F",
+"F, c #79868C",
+"G, c #778389",
+"H, c #78848A",
+"I, c #778288",
+"J, c #6A7677",
+"K, c #515858",
+"L, c #849193",
+"M, c #131515",
+"N, c #6D797B",
+"O, c #667475",
+"P, c #657374",
+"Q, c #647373",
+"R, c #657474",
+"S, c #647374",
+"T, c #637272",
+"U, c #657172",
+"V, c #657171",
+"W, c #636F6F",
+"X, c #626D6F",
+"Y, c #616C6E",
+"Z, c #5C6769",
+"`, c #5E676A",
+" ' c #5F676C",
+".' c #5F686C",
+"+' c #616A6E",
+"@' c #626C6F",
+"#' c #626B6D",
+"$' c #616B6D",
+"%' c #5E696C",
+"&' c #586366",
+"*' c #576164",
+"=' c #2D3232",
+"-' c #040606",
+";' c #010304",
+">' c #1F2325",
+",' c #677274",
+"'' c #6C797B",
+")' c #717D81",
+"!' c #62686A",
+"~' c #111111",
+"{' c #16171B",
+"]' c #8E999E",
+"^' c #9FAEB4",
+"/' c #A5B2B9",
+"(' c #A7B4BB",
+"_' c #ABBAC0",
+":' c #ACBCC1",
+"<' c #ADBDC1",
+"[' c #AFBFC4",
+"}' c #B1C1C5",
+"|' c #B3C3C8",
+"1' c #B5C5CB",
+"2' c #B5C6CB",
+"3' c #B6C6CB",
+"4' c #B7C6C9",
+"5' c #C3D0D1",
+"6' c #B4BDBB",
+"7' c #595E5C",
+"8' c #1D1F1F",
+"9' c #090909",
+"0' c #020404",
+"a' c #191C1F",
+"b' c #656A6F",
+"c' c #8E979D",
+"d' c #9AA6AD",
+"e' c #A1ACAF",
+"f' c #93A2A7",
+"g' c #8F9DA3",
+"h' c #89969C",
+"i' c #889699",
+"j' c #889597",
+"k' c #869496",
+"l' c #849294",
+"m' c #849293",
+"n' c #829091",
+"o' c #7D8B90",
+"p' c #7C898F",
+"q' c #7B888E",
+"r' c #7B868C",
+"s' c #778388",
+"t' c #6C7879",
+"u' c #576162",
+"v' c #676C6E",
+"w' c #6B7778",
+"x' c #657273",
+"y' c #647172",
+"z' c #667172",
+"A' c #667072",
+"B' c #646F71",
+"C' c #647070",
+"D' c #667171",
+"E' c #657173",
+"F' c #636F70",
+"G' c #606B6D",
+"H' c #5F686A",
+"I' c #5D6769",
+"J' c #5D676A",
+"K' c #5E676C",
+"L' c #5D666C",
+"M' c #5C6669",
+"N' c #5C6668",
+"O' c #5E686A",
+"P' c #5C676C",
+"Q' c #5C666B",
+"R' c #303434",
+"S' c #040505",
+"T' c #010303",
+"U' c #1E2224",
+"V' c #5E676B",
+"W' c #626D71",
+"X' c #687577",
+"Y' c #6E797D",
+"Z' c #5F6668",
+"`' c #101111",
+" ) c #8C979C",
+".) c #9DACB3",
+"+) c #A4B1B7",
+"@) c #A9B5BC",
+"#) c #AAB6BD",
+"$) c #ABB8BE",
+"%) c #ABBABE",
+"&) c #AEBEC2",
+"*) c #B2C3C8",
+"=) c #B1C2C7",
+"-) c #AFC2C5",
+";) c #AEC0C2",
+">) c #B2C2C2",
+",) c #BCC6C7",
+"') c #9BA0A3",
+")) c #515456",
+"!) c #1F2121",
+"~) c #2D2E32",
+"{) c #6E7579",
+"]) c #97A2A7",
+"^) c #8D979C",
+"/) c #333739",
+"() c #020403",
+"_) c #A1ABAE",
+":) c #92A0A6",
+"<) c #8B999E",
+"[) c #8A979C",
+"}) c #88959A",
+"|) c #869498",
+"1) c #839195",
+"2) c #829094",
+"3) c #828F94",
+"4) c #818E92",
+"5) c #7B878D",
+"6) c #6C777A",
+"7) c #586263",
+"8) c #252727",
+"9) c #474B4B",
+"0) c #444849",
+"a) c #424647",
+"b) c #414445",
+"c) c #404344",
+"d) c #404243",
+"e) c #3E4141",
+"f) c #3E4142",
+"g) c #3E4242",
+"h) c #3D4242",
+"i) c #3D4241",
+"j) c #3B4040",
+"k) c #3C4040",
+"l) c #3D4040",
+"m) c #3D4041",
+"n) c #3C3F41",
+"o) c #3D4042",
+"p) c #3D4243",
+"q) c #3C4243",
+"r) c #4E5556",
+"s) c #6C7577",
+"t) c #5F696C",
+"u) c #323537",
+"v) c #1D2122",
+"w) c #5B6469",
+"x) c #5F6A6E",
+"y) c #6A7679",
+"z) c #5E6566",
+"A) c #879297",
+"B) c #9AAAB1",
+"C) c #A1AEB4",
+"D) c #A6B3B9",
+"E) c #ACBAC0",
+"F) c #ADBCC1",
+"G) c #ACBBC0",
+"H) c #AEBFC3",
+"I) c #AEBFC4",
+"J) c #ADBEC2",
+"K) c #ABBCC1",
+"L) c #A8B8BC",
+"M) c #A9B5B9",
+"N) c #AAB5B9",
+"O) c #B0BBBF",
+"P) c #B5BFC1",
+"Q) c #8B9193",
+"R) c #4E5253",
+"S) c #1D1F1E",
+"T) c #030102",
+"U) c #060306",
+"V) c #2D2F33",
+"W) c #8B9499",
+"X) c #030504",
+"Y) c #000200",
+"Z) c #4A4E4E",
+"`) c #9DA7AA",
+" ! c #88959B",
+".! c #87949A",
+"+! c #839096",
+"@! c #849197",
+"#! c #828F95",
+"$! c #7E8B91",
+"%! c #111414",
+"&! c #060507",
+"*! c #535658",
+"=! c #859093",
+"-! c #010302",
+";! c #030204",
+">! c #232427",
+",! c #707779",
+"'! c #5A6368",
+")! c #687477",
+"!! c #656C6D",
+"~! c #131414",
+"{! c #92A2A8",
+"]! c #9BA8AE",
+"^! c #A0ADB3",
+"/! c #A2AFB5",
+"(! c #A5B3B9",
+"_! c #A8B7BC",
+":! c #AAB9BE",
+"<! c #ADBBC1",
+"[! c #ABB9BE",
+"}! c #A9B6BC",
+"|! c #A8B5BA",
+"1! c #A5B5BA",
+"2! c #A6B5B9",
+"3! c #B2BDC1",
+"4! c #ADB5B9",
+"5! c #82888A",
+"6! c #4C4F4F",
+"7! c #151415",
+"8! c #0C0A0D",
+"9! c #4D5054",
+"0! c #A0A9AD",
+"a! c #373C3D",
+"b! c #060707",
+"c! c #020402",
+"d! c #4D5252",
+"e! c #9AA5A8",
+"f! c #869399",
+"g! c #818E94",
+"h! c #7F8C92",
+"i! c #7D8A90",
+"j! c #6A7578",
+"k! c #08080A",
+"l! c #57595B",
+"m! c #869194",
+"n! c #677172",
+"o! c #242727",
+"p! c #28292B",
+"q! c #787E80",
+"r! c #050607",
+"s! c #5A6367",
+"t! c #5F6B6D",
+"u! c #657174",
+"v! c #909799",
+"w! c #646667",
+"x! c #505353",
+"y! c #606566",
+"z! c #8C989C",
+"A! c #909FA5",
+"B! c #97A4AA",
+"C! c #A1AFB5",
+"D! c #A4B3B8",
+"E! c #A6B5BA",
+"F! c #A8B4BA",
+"G! c #A8B5BB",
+"H! c #A9B6BD",
+"I! c #A7B5BB",
+"J! c #A4B3B9",
+"K! c #A2B1B7",
+"L! c #A3AFB6",
+"M! c #A3AEB4",
+"N! c #AEB7BC",
+"O! c #A4ACAE",
+"P! c #5F6366",
+"Q! c #8D9599",
+"R! c #A1ADB1",
+"S! c #9BA4A9",
+"T! c #585B5B",
+"U! c #535656",
+"V! c #848C8C",
+"W! c #98A3A7",
+"X! c #8B989D",
+"Y! c #89969B",
+"Z! c #879499",
+"`! c #859296",
+" ~ c #818E93",
+".~ c #7F8C91",
+"+~ c #7A878C",
+"@~ c #77848A",
+"#~ c #737F82",
+"$~ c #616666",
+"%~ c #4D4F50",
+"&~ c #595B5D",
+"*~ c #7F8386",
+"=~ c #808B8F",
+"-~ c #768082",
+";~ c #6D7272",
+">~ c #535555",
+",~ c #4D5050",
+"'~ c #4C4E4F",
+")~ c #505252",
+"!~ c #515253",
+"~~ c #515252",
+"{~ c #505152",
+"]~ c #505151",
+"^~ c #4E5151",
+"/~ c #4E5252",
+"(~ c #4F5252",
+"_~ c #4F5151",
+":~ c #4F5355",
+"<~ c #6A6F71",
+"[~ c #8C9597",
+"}~ c #303336",
+"|~ c #1B2021",
+"1~ c #576165",
+"2~ c #7B8587",
+"3~ c #7F8889",
+"4~ c #7B8687",
+"5~ c #859091",
+"6~ c #8B999D",
+"7~ c #9DAAB0",
+"8~ c #A5B2B8",
+"9~ c #A7B4BA",
+"0~ c #A6B2B8",
+"a~ c #A4B1B8",
+"b~ c #A3B1B7",
+"c~ c #A2AFB6",
+"d~ c #A2AEB4",
+"e~ c #9FAAB0",
+"f~ c #9DA8AE",
+"g~ c #A0ACB1",
+"h~ c #A5B1B7",
+"i~ c #98A3A9",
+"j~ c #97A3AA",
+"k~ c #98A4AA",
+"l~ c #99A4A9",
+"m~ c #929DA1",
+"n~ c #8E999D",
+"o~ c #919DA2",
+"p~ c #909DA2",
+"q~ c #8C9A9C",
+"r~ c #8A9799",
+"s~ c #879597",
+"t~ c #818F91",
+"u~ c #828F92",
+"v~ c #818E91",
+"w~ c #768389",
+"x~ c #727D83",
+"y~ c #737F84",
+"z~ c #7E878C",
+"A~ c #7D868B",
+"B~ c #7F888D",
+"C~ c #727D82",
+"D~ c #7D8689",
+"E~ c #798283",
+"F~ c #768080",
+"G~ c #778080",
+"H~ c #7A8283",
+"I~ c #798083",
+"J~ c #798082",
+"K~ c #787F81",
+"L~ c #767D7F",
+"M~ c #757C7E",
+"N~ c #757B7D",
+"O~ c #747B7C",
+"P~ c #73797C",
+"Q~ c #72797B",
+"R~ c #737A7C",
+"S~ c #727B7C",
+"T~ c #737C7D",
+"U~ c #747B7D",
+"V~ c #71787A",
+"W~ c #6F7778",
+"X~ c #6F7779",
+"Y~ c #6F7678",
+"Z~ c #6C7677",
+"`~ c #717A7F",
+" { c #5F676E",
+".{ c #60686E",
+"+{ c #1B1F21",
+"@{ c #5B6668",
+"#{ c #667173",
+"${ c #6D797A",
+"%{ c #728081",
+"&{ c #778586",
+"*{ c #7F8D8E",
+"={ c #A3B0B6",
+"-{ c #9FABB1",
+";{ c #9EA9AF",
+">{ c #9BA7AE",
+",{ c #99A6AE",
+"'{ c #98A5AD",
+"){ c #97A4AB",
+"!{ c #8C999D",
+"~{ c #899798",
+"{{ c #6E797E",
+"]{ c #6D7879",
+"^{ c #6D787A",
+"/{ c #6C7B7C",
+"({ c #6E7C7D",
+"_{ c #6D7C7C",
+":{ c #6E797B",
+"<{ c #6D7779",
+"[{ c #697274",
+"}{ c #697375",
+"|{ c #677173",
+"1{ c #646E70",
+"2{ c #616D6E",
+"3{ c #5F6D6E",
+"4{ c #5F6D6D",
+"5{ c #5E6C6D",
+"6{ c #5E6A6C",
+"7{ c #5F666E",
+"8{ c #60676F",
+"9{ c #303538",
+"0{ c #1C2123",
+"a{ c #576063",
+"b{ c #586367",
+"c{ c #677375",
+"d{ c #6D7A7B",
+"e{ c #707E7F",
+"f{ c #758384",
+"g{ c #7E8B8F",
+"h{ c #9CA8AE",
+"i{ c #9CA7AD",
+"j{ c #9BA6AC",
+"k{ c #99A5AC",
+"l{ c #9AA7AF",
+"m{ c #9BA8B0",
+"n{ c #808D93",
+"o{ c #717C82",
+"p{ c #6F7A80",
+"q{ c #6D787D",
+"r{ c #6D797C",
+"s{ c #6B797B",
+"t{ c #6A7B7B",
+"u{ c #6B7B7B",
+"v{ c #6A7A7A",
+"w{ c #687576",
+"x{ c #616D6F",
+"y{ c #606C6E",
+"z{ c #5F6C6D",
+"A{ c #5F686E",
+"B{ c #616870",
+"C{ c #33373A",
+"D{ c #010305",
+"E{ c #596165",
+"F{ c #697679",
+"G{ c #6F7C80",
+"H{ c #738083",
+"I{ c #7B868A",
+"J{ c #838F94",
+"K{ c #8B979B",
+"L{ c #909BA0",
+"M{ c #929EA3",
+"N{ c #96A2A7",
+"O{ c #9BA7AD",
+"P{ c #97A3A9",
+"Q{ c #9AA6AC",
+"R{ c #99A6AA",
+"S{ c #98A4A9",
+"T{ c #99A5AA",
+"U{ c #96A1A6",
+"V{ c #97A1A6",
+"W{ c #9AA3A8",
+"X{ c #9CA6AA",
+"Y{ c #94A0A6",
+"Z{ c #939EA5",
+"`{ c #919DA4",
+" ] c #8E9AA0",
+".] c #8D989D",
+"+] c #8E989E",
+"@] c #8C979D",
+"#] c #8B979D",
+"$] c #8A989B",
+"%] c #879395",
+"&] c #839090",
+"*] c #818E8E",
+"=] c #828F90",
+"-] c #7F8B8C",
+";] c #7B8788",
+">] c #798687",
+",] c #798489",
+"'] c #788388",
+")] c #757F85",
+"!] c #727C82",
+"~] c #6F797E",
+"{] c #737D83",
+"]] c #717A80",
+"^] c #6E787D",
+"/] c #6F787E",
+"(] c #6F787D",
+"_] c #6C757B",
+":] c #6C767A",
+"<] c #6D767C",
+"[] c #6E787B",
+"}] c #6C797A",
+"|] c #667476",
+"1] c #677577",
+"2] c #677273",
+"3] c #667374",
+"4] c #697476",
+"5] c #6A7376",
+"6] c #6A7577",
+"7] c #616C6D",
+"8] c #5C6768",
+"9] c #596465",
+"0] c #586465",
+"a] c #586264",
+"b] c #5A6267",
+"c] c #5D646B",
+"d] c #60676D",
+"e] c #020305",
+"f] c #1C2023",
+"g] c #586063",
+"h] c #596468",
+"i] c #5C666A",
+"j] c #5E6669",
+"k] c #45484A",
+"l] c #494A4D",
+"m] c #51575D",
+"n] c #6C767E",
+"o] c #6B7379",
+"p] c #484B4F",
+"q] c #4D5353",
+"r] c #414446",
+"s] c #464E4D",
+"t] c #525657",
+"u] c #424346",
+"v] c #424546",
+"w] c #46494C",
+"x] c #92A1A5",
+"y] c #97A4A9",
+"z] c #5E666C",
+"A] c #959EA5",
+"B] c #98A5A9",
+"C] c #7A8384",
+"D] c #676E70",
+"E] c #676C6F",
+"F] c #484C4E",
+"G] c #434949",
+"H] c #464D4C",
+"I] c #6A7171",
+"J] c #444A4A",
+"K] c #444648",
+"L] c #44464A",
+"M] c #4F5559",
+"N] c #5A6164",
+"O] c #656D71",
+"P] c #4A4E4F",
+"Q] c #444749",
+"R] c #52565A",
+"S] c #727F81",
+"T] c #869897",
+"U] c #7F8D8D",
+"V] c #565D5D",
+"W] c #484D4D",
+"X] c #5B6363",
+"Y] c #636C6E",
+"Z] c #848F93",
+"`] c #56595B",
+" ^ c #3F4042",
+".^ c #414647",
+"+^ c #424747",
+"@^ c #4C5051",
+"#^ c #5D6162",
+"$^ c #55595B",
+"%^ c #404747",
+"&^ c #414847",
+"*^ c #737F86",
+"=^ c #6F777B",
+"-^ c #3D3E40",
+";^ c #3B3D3F",
+">^ c #4A4B4D",
+",^ c #545557",
+"'^ c #3E4444",
+")^ c #444748",
+"!^ c #4E5054",
+"~^ c #4C5358",
+"{^ c #6C787C",
+"]^ c #6A7378",
+"^^ c #4B5255",
+"/^ c #626F73",
+"(^ c #6A777D",
+"_^ c #44484A",
+":^ c #3D4142",
+"<^ c #393D3E",
+"[^ c #3A3D3F",
+"}^ c #484B4E",
+"|^ c #424548",
+"1^ c #565A5D",
+"2^ c #3F4446",
+"3^ c #484C4D",
+"4^ c #4C5252",
+"5^ c #515C5A",
+"6^ c #606E6C",
+"7^ c #495352",
+"8^ c #4E5454",
+"9^ c #363B3C",
+"0^ c #44494B",
+"a^ c #62696C",
+"b^ c #646D72",
+"c^ c #626B70",
+"d^ c #5A6467",
+"e^ c #535B5E",
+"f^ c #25282A",
+"g^ c #232324",
+"h^ c #42484C",
+"i^ c #54585A",
+"j^ c #27292A",
+"k^ c #535B5C",
+"l^ c #363B3D",
+"m^ c #586161",
+"n^ c #343839",
+"o^ c #202123",
+"p^ c #2A2C2E",
+"q^ c #44484B",
+"r^ c #4B5356",
+"s^ c #899396",
+"t^ c #8F999D",
+"u^ c #34383D",
+"v^ c #8D9398",
+"w^ c #97A2A5",
+"x^ c #61676A",
+"y^ c #373A3D",
+"z^ c #36393C",
+"A^ c #343638",
+"B^ c #2C2F30",
+"C^ c #252829",
+"D^ c #464B4B",
+"E^ c #191C1D",
+"F^ c #2E2D30",
+"G^ c #312F35",
+"H^ c #4A4C51",
+"I^ c #3B3E40",
+"J^ c #232829",
+"K^ c #5A5F61",
+"L^ c #595B5A",
+"M^ c #646A6C",
+"N^ c #434749",
+"O^ c #2D3235",
+"P^ c #656D6F",
+"Q^ c #778686",
+"R^ c #839494",
+"S^ c #3E4041",
+"T^ c #3B3F41",
+"U^ c #2D3031",
+"V^ c #1D1E20",
+"W^ c #545959",
+"X^ c #202223",
+"Y^ c #2F3435",
+"Z^ c #414A49",
+"`^ c #4F5857",
+" / c #242929",
+"./ c #535B5F",
+"+/ c #748087",
+"@/ c #646B6F",
+"#/ c #232425",
+"$/ c #242527",
+"%/ c #353537",
+"&/ c #1A1A1C",
+"*/ c #424547",
+"=/ c #16171A",
+"-/ c #313639",
+";/ c #707A7B",
+">/ c #636C6D",
+",/ c #2F3335",
+"'/ c #5D6669",
+")/ c #6D777B",
+"!/ c #2E3234",
+"~/ c #454A4C",
+"{/ c #292D30",
+"]/ c #323739",
+"^/ c #4A4F52",
+"// c #26292C",
+"(/ c #24262A",
+"_/ c #2E3134",
+":/ c #414B4A",
+"</ c #383D3D",
+"[/ c #1D1D1F",
+"}/ c #232224",
+"|/ c #212526",
+"1/ c #454C4C",
+"2/ c #292A2C",
+"3/ c #191A1B",
+"4/ c #60696E",
+"5/ c #333737",
+"6/ c #586165",
+"7/ c #586266",
+"8/ c #252729",
+"9/ c #212222",
+"0/ c #3C4141",
+"a/ c #31393B",
+"b/ c #292E2F",
+"c/ c #4B5256",
+"d/ c #4A5054",
+"e/ c #7D8788",
+"f/ c #3E4344",
+"g/ c #2E2F31",
+"h/ c #3F4243",
+"i/ c #494E4D",
+"j/ c #4F5353",
+"k/ c #43474A",
+"l/ c #6E7477",
+"m/ c #2B2E32",
+"n/ c #6E7276",
+"o/ c #777F81",
+"p/ c #585C5F",
+"q/ c #383A3D",
+"r/ c #3D3D41",
+"s/ c #464649",
+"t/ c #454648",
+"u/ c #1B1D1F",
+"v/ c #202525",
+"w/ c #414546",
+"x/ c #43474B",
+"y/ c #545C5F",
+"z/ c #474D4F",
+"A/ c #454B4D",
+"B/ c #444A4E",
+"C/ c #2F3233",
+"D/ c #3D4447",
+"E/ c #8B9397",
+"F/ c #5D6468",
+"G/ c #42494C",
+"H/ c #889496",
+"I/ c #859595",
+"J/ c #859495",
+"K/ c #2D2F31",
+"L/ c #3C4342",
+"M/ c #1B1B1C",
+"N/ c #353838",
+"O/ c #444A4B",
+"P/ c #677071",
+"Q/ c #444C4D",
+"R/ c #232426",
+"S/ c #5F6364",
+"T/ c #606565",
+"U/ c #3A3D3E",
+"V/ c #505556",
+"W/ c #616767",
+"X/ c #737E85",
+"Y/ c #6D7579",
+"Z/ c #4A4D4E",
+"`/ c #373839",
+" ( c #313234",
+".( c #1E1F21",
+"+( c #4F5254",
+"@( c #5F6766",
+"#( c #4C4F50",
+"$( c #17171A",
+"%( c #282B2D",
+"&( c #586060",
+"*( c #515758",
+"=( c #292B2B",
+"-( c #4E5355",
+";( c #5A6064",
+">( c #393B3C",
+",( c #3D4446",
+"'( c #636B6F",
+")( c #3C4246",
+"!( c #2A2F31",
+"~( c #26272B",
+"{( c #3B3C3F",
+"]( c #525A59",
+"^( c #454949",
+"/( c #1E1F20",
+"(( c #303032",
+"_( c #2B3131",
+":( c #1A1D1E",
+"<( c #343939",
+"[( c #313838",
+"}( c #2B3232",
+"|( c #232929",
+"1( c #24292B",
+"2( c #60696D",
+"3( c #1E2124",
+"4( c #556064",
+"5( c #333839",
+"6( c #4F595A",
+"7( c #3E4849",
+"8( c #3E4548",
+"9( c #565F64",
+"0( c #7D888A",
+"a( c #414649",
+"b( c #4B5153",
+"c( c #4B5352",
+"d( c #4A5151",
+"e( c #4A5053",
+"f( c #4F5658",
+"g( c #3A4043",
+"h( c #494F52",
+"i( c #575B5F",
+"j( c #4C5053",
+"k( c #505557",
+"l( c #3A3F42",
+"m( c #53595B",
+"n( c #4A4F51",
+"o( c #494E52",
+"p( c #4E5559",
+"q( c #7B858B",
+"r( c #4C5458",
+"s( c #8B959A",
+"t( c #6C757A",
+"u( c #5B6368",
+"v( c #8C989B",
+"w( c #89989A",
+"x( c #899799",
+"y( c #717E7E",
+"z( c #717B7C",
+"A( c #51595A",
+"B( c #41484A",
+"C( c #464D51",
+"D( c #464C4F",
+"E( c #373B3E",
+"F( c #414749",
+"G( c #414849",
+"H( c #3E4446",
+"I( c #4B5254",
+"J( c #3F4546",
+"K( c #45494C",
+"L( c #3D4144",
+"M( c #404547",
+"N( c #363A3D",
+"O( c #494F50",
+"P( c #3D4244",
+"Q( c #383D3F",
+"R( c #3D4646",
+"S( c #3A4041",
+"T( c #303536",
+"U( c #3D4444",
+"V( c #434A4A",
+"W( c #393E3E",
+"X( c #3B4143",
+"Y( c #3B4144",
+"Z( c #626C70",
+"`( c #485055",
+" _ c #525C60",
+"._ c #636D6F",
+"+_ c #3C4346",
+"@_ c #404549",
+"#_ c #35393D",
+"$_ c #383E40",
+"%_ c #353B3D",
+"&_ c #33393B",
+"*_ c #42484A",
+"=_ c #555D5F",
+"-_ c #505A5B",
+";_ c #2E3537",
+">_ c #373C3E",
+",_ c #33383A",
+"'_ c #393F42",
+")_ c #323636",
+"!_ c #040605",
+"~_ c #1D2023",
+"{_ c #566163",
+"]_ c #546264",
+"^_ c #556264",
+"/_ c #556063",
+"(_ c #505C5F",
+"__ c #525E60",
+":_ c #5C686A",
+"<_ c #647074",
+"[_ c #707C81",
+"}_ c #6C787D",
+"|_ c #6F7B7F",
+"1_ c #7B878A",
+"2_ c #768184",
+"3_ c #6F7B7D",
+"4_ c #747F82",
+"5_ c #768285",
+"6_ c #7B878B",
+"7_ c #7E898D",
+"8_ c #7C888C",
+"9_ c #7B868B",
+"0_ c #8A959A",
+"a_ c #899599",
+"b_ c #7E898E",
+"c_ c #7F8A8F",
+"d_ c #778186",
+"e_ c #768185",
+"f_ c #798389",
+"g_ c #869298",
+"h_ c #8C989F",
+"i_ c #849097",
+"j_ c #828F93",
+"k_ c #8A969B",
+"l_ c #869497",
+"m_ c #7B888A",
+"n_ c #778385",
+"o_ c #7D888C",
+"p_ c #737E82",
+"q_ c #6D797D",
+"r_ c #6E7A7D",
+"s_ c #758183",
+"t_ c #667174",
+"u_ c #667175",
+"v_ c #707B7F",
+"w_ c #6A7579",
+"x_ c #6F7B80",
+"y_ c #6E7A7E",
+"z_ c #616C71",
+"A_ c #657074",
+"B_ c #677275",
+"C_ c #5D696B",
+"D_ c #636F71",
+"E_ c #5A6668",
+"F_ c #626D70",
+"G_ c #566264",
+"H_ c #647073",
+"I_ c #626E71",
+"J_ c #626E70",
+"K_ c #5D696C",
+"L_ c #5B6568",
+"M_ c #545D60",
+"N_ c #343838",
+"O_ c #1C2122",
+"P_ c #596464",
+"Q_ c #586567",
+"R_ c #5E6A6D",
+"S_ c #616E71",
+"T_ c #768284",
+"U_ c #778386",
+"V_ c #808D8D",
+"W_ c #849192",
+"X_ c #879394",
+"Y_ c #879498",
+"Z_ c #8F9BA1",
+"`_ c #909CA2",
+" : c #919CA2",
+".: c #929DA3",
+"+: c #929DA4",
+"@: c #929EA4",
+"#: c #8E99A0",
+"$: c #8D989E",
+"%: c #8C989E",
+"&: c #8A959C",
+"*: c #8A969C",
+"=: c #89959B",
+"-: c #88949A",
+";: c #889598",
+">: c #889497",
+",: c #869295",
+"': c #879396",
+"): c #869595",
+"!: c #869494",
+"~: c #849292",
+"{: c #838F90",
+"]: c #828E8F",
+"^: c #808D8F",
+"/: c #7F8B8E",
+"(: c #7D898C",
+"_: c #7C8989",
+":: c #7A8788",
+"<: c #7A858B",
+"[: c #748086",
+"}: c #727D84",
+"|: c #707C82",
+"1: c #707C80",
+"2: c #707B80",
+"3: c #6B777B",
+"4: c #6A767A",
+"5: c #6B767A",
+"6: c #6A7678",
+"7: c #6D7A7A",
+"8: c #6C7979",
+"9: c #6A7778",
+"0: c #697677",
+"a: c #687575",
+"b: c #657073",
+"c: c #646F73",
+"d: c #626E6F",
+"e: c #646F70",
+"f: c #383C3C",
+"g: c #0D0F0E",
+"h: c #34393B",
+"i: c #353A3B",
+"j: c #393E41",
+"k: c #3A3F43",
+"l: c #3B4043",
+"m: c #3B4042",
+"n: c #3F4545",
+"o: c #404548",
+"p: c #42474B",
+"q: c #44484C",
+"r: c #43484C",
+"s: c #424648",
+"t: c #42464A",
+"u: c #424749",
+"v: c #404748",
+"w: c #404848",
+"x: c #424848",
+"y: c #414747",
+"z: c #424748",
+"A: c #404448",
+"B: c #3E4246",
+"C: c #3F4445",
+"D: c #3E4346",
+"E: c #3C4144",
+"F: c #3B3F43",
+"G: c #3D4245",
+"H: c #3E4347",
+"I: c #3D4246",
+"J: c #3C4043",
+"K: c #3B4041",
+"L: c #3A3F40",
+"M: c #393E3F",
+"N: c #3A4040",
+"O: c #3B4142",
+"P: c #3C4142",
+"Q: c #3C4242",
+"R: c #3C4344",
+"S: c #3D4344",
+"T: c #3B4141",
+"U: c #1B1E1D",
+"V: c #020100",
+"W: c #050605",
+"X: c #050508",
+"Y: c #060505",
+"Z: c #060605",
+"`: c #060508",
+". + @ # # $ % $ @ @ @ # & & & * @ $ $ # # # # = - ; > & & & & & & & $ % $ # $ , , , ' ) ) ) ! ! ! ! ~ ~ ~ $ { { { ] ^ ^ ^ ^ ^ ^ ^ ] ] ] ] { / ( ( ( ( ( / _ { { { , , , ' { { { _ _ _ _ _ _ _ _ : : : { < [ / ( ( } ( { | 1 | 2 3 ",
+"4 5 6 7 8 9 0 a b c d e f f f g h i g j j j k l m n o p q r s t u v w x y z A B 7 C D E F G H I I J K K L L M N O P Q R S T U V W X X X X Y Z ` .......+.@.#.$.%.&.*.=.-.;.-.>.>.>.>.,.'.).!.!.~.'.{.].^.;.^././.(._.].].:.<.[.}.",
+"|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.K.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. + +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+^+/+(+_+:+<+[+}+}+|+|+1+1+2+3+4+5+6+7+7+5+5+5+8+9+0+",
+"a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+e+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@c@d@d@e@c@f@g@g@h@i@j@k@l@m@n@o@p@q@",
+"r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@D@D@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@T@W@X@Y@Z@`@ #.#+#@###&+$#]+%#(+&#*#*#(+(+=#-#;#>#,#'#)#!#~#{#]#{#^#/#/#!#^#(#_#:#<#[#}#|#1#2#3#3#4#5#6#7#8#9#0#a#a#0#b#c#d#e#f#f#g#h#i#j#h#k#k#l#m#n#o#p#q#r#s#",
+"r@t#u#v#w#x#y#z#A#B#B#C#C#B#D#E#F#D#G#E#C#E#E#H#C#I#E#B#B#B#B#B#J#B#F#K#L#M#N#O#P#Q#I#R#S#T#U#U#V#W#T#T#R#R#R#R#T#T#R#U#X#X#X#Y#Y#X#X#Z#U#G#R#I#`# $.$+$@$#$$$$$%$%$%$$$&$*$&$=$V#T#T#R#-$-$-$-$;$;$;$>$-$-$>$,$'$)$!$~${$]$^$/$($",
+"r@t#S._$:$<$[$}$|$1$1$1$1$1$1$1$1$1$1$2$2$2$2$1$1$1$1$1$1$1$1$1$1$1$3$3 4$5$6$7$8$9$0$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a${ b$c$d$e$f$g$g$g$g$g$g$a$a$a$a$a$a$a$g$3$3$3$3$a$a$a$a$a$a$a$a$a$h$i$,.j$k$l$m$n$",
+"o$p$q$r$s$t$u$v$|$w$x$0$|$|$|$|$|$w$|$|$|$|$|$y$y$y$z$A$y$y$B$B$C$3 D$w$E$F$G$H$I$J$3 K$L$L$B$M$N$O$O$O$O$P$Q$L$B$B$N$O$R$O$M$M$M$O$O$M$O$S$L$B$T$U$V$W$X$B$L$Y$Y$O$O$O$y$|$Z$y$M$O$N$N$C$C$`$`$Z$A$A$M$O$O$O$h$g$ %.%+%@%#%$%%%n$",
+"&%*%=%-%;%>%,%'%A$)%!%~%{%]%^%/%(%(%(%_%:%<%[%~%~%}%|%1%2%3%4%5%6%7%8%1$9%0%a%7$b%}.c%d%e%f%g%h%i%j%k%l%m%n%o%p%a$q%r%s%t%u%v%v%w%x%x%x%x%y%z%g$A%B%C%D%E%2$F%G%H%I%I%J%K%L%M%N%O%O%P%P%Q%R%S%T%U%V%V%W%X%Y%Z%`%`% &.&+&@&@&#&$&%&",
+"r@&&*&=&-&;&>&,&|$'&)&!&~&{&]&^&/&(&_&{&:&~&<&[&}&|&1&2&3&4&5&6&7&8&9&1$9%0&a&b&c&}.d&e&f&g&h&i&j&k&l&l&m&W+n&p@1$o&p&q&r&s&t&u&v&w&=@x&x&y&z&g$A&B&C&D&E&2$( F&=+G&H&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&U&U&V&W&W&X&Y&Z&`& *.*+*@*{$s@($",
+"q%#*$*%*&*_$**=*1$-*;*>*,*'*)*!*~*{*{*]*^*/*(*_*:*<*[*}*|*1*1*2*3*4*5*1$6*7*a%8*9* %D$0*a*b*c*d*e*f*g*h*i*X+j*k*1$l*m*n*o*p*q*r*s**@-@t*u*v*w*g$A%B%x*y*z*2$( A*-+B*C*D*E*F*G*H*[@I*I*J*J*I*K*L*M*N*O*P*Q*R*S*T*U*U*V*W*X*Y*Z*`* =",
+".=+=8&@=#=$=%=&=y$*===-=;=>=8*,='=)=)='=8*'=!=~={=]=^=w@/=(=_=:=<=[=}=1$6*0%|=1=9*r@2=3=4=5=e*6=7=8=,=9=0=a=b=c=1$3$m*d=e=f=V$g=h= +i=j=k=-+w*g$A%B%l=m=n=2$( o=p=q=$#L#r=s=t=u=t=v=w=v=x=y=z=A=B=C=D=E=E=E=F=G=H=I=J=J=K=K=L=M=2 ",
+"0$0+N=O=P=Q=z*}.0$R=S=T=,+U=V=W=X=Y=Z=Z=Y=`= -.- ++-|*@-#-$-%-&-*-$ C$1$=---;-N.>-r@f$,-'-)-!-~-_${-]-^-/-(-_-c=|$w$:-<-[-}-|-1-2-3-4-x&5-6-7-g$A%8-9-0-a-2${ b-c-d-G=e-f-f-g-h-i-j-k-l-l-l-Q=Q=m-m-m-Q=n-n-n-m-o-Q=n-n-n-m-P=* p-",
+"0$0$0$0$0$0$3 3 0$q-r-s-t-3 a$f$D$D$D$D$D$D$D$u-v-w-x-y-z-A-B-C-D-3 x$}.E-F-;-G-H-r@f$,-'-I-J-K-{-{-]-^-&*L-M-k*N-O-:-J@P-Q-R-S-T-U-$@4-=@6-7-g$A&B%f=V-z*2${ W-X-Y-Z-`-o&l* ;.;D$D$D$D$D$g$g$+;@;@;@;#;$;$;%;%;$;%;&;@;@;@;*;f$0$",
+"1$1$1$1$2$2$2$2$0$=;-;v@;;>;2$w$,;,;,;,;,;,;w$w$y$n$';);!;~;{;];^;/;(;_;:;<;[;t@}; %f$|;1;s$J-_$^-i*&*2;3;4;5;6;7;8;9;0;[-}-1-a;b;c;d;x&-@>+e;g$A&B%[-f;n=2${ g;h;i;j;k;l;m;n;p-p-p-p-p-p-o;o;p-p;p;p;q;r@r@r;r@r@q;q;q;p;q;o$2$1$",
+"s;t;u;v;w;Q%x;y;0$z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;+ R;S;T;U;V;W;X;Y;Z;`; >.>+> %0$@>#>$>!-~-K-_$k&{-^-%>&>*>=>->;>>>[-,>'>)>!>~>4-x&*@{>7-a$]>^>/>(>a-2${ g;X-_>:><>r [>}>|>1>2>2>2>3>3>4>5>6>7>7>7>7>8>9>0>7>7>A*a>b>c>d>e>2 ",
+"f>g>h>i>j>f=k>l>1$m>n>o>p>q>q>x.r>s>t>u>v>w>x>y>z>A>r@2$x$B>C>D>E>F>G>H>I>J>P+K>L>p;0$M>N>O>P>^-]-^-&*i*&*Q>R>S>S>T>U>V>W>X>Y>Y>Y>Z>d;`>*@ ,.,a$]>+,@,#,$,2${ %,&,*,=,-,;,>,,,,,>+',),),),!,~,{,],],^,/,],],],(,(,(,@=_,:,<,[,},O;",
+"|,1,$#2,3,4,5,6,1$7,8,9,0,a,J+b,c,c,d,e,f,c,e,g,h,i,j,k,l,p;r@n$m,n,o,p,q,r,s,t,u,}.w$v,w,x,P>^-^-y,z,z,z,A,B,C,C,D,V>W>E,X>F,t&G,H,I,x&=@J,z%a$]>K,L,#,M,2$& v N,O,P,Q,R,S,T,Q,U,F*V,W,X,Y,}@Z,>#`,`,:+ '.'+'@'#'/+$'%'V&&'*'='-'",
+";'>'%#,''')'!'~'1${']'^'/'('a%_':'<'T=['}'|'1'2'3'4'5'6'7'8'9'Z$3 0'a'b'c'd'P+c+9*p-Z$v,e'f'g'y,y,2;3;3;h'i'j'k'l'm'm'V>n'o'p'q'Y>r'd;4-s't'.,a$]>L=L,u'a-2$_ v'w'x'y'y'z'A'G*B'C'C'D'V,U,E'F'G'*#H'I'J'K'K'L'M'N'I'O'2@P'P'Q'R'S'",
+"T'U'V'W'X'Y'Z'`'1$=$ ).)+)@)#)$)%)%)3*0,&)J+I+*)=)-);)>),)')))!)O;q%3 T$~){)])^)/)()A$M>_)T+:)]-i*/-y,y,y,<)[)})|)1)2)3)4)p'q'Y>5)~>4-I,`>6)a-1$8%B%9-7)M,1$}.8)9)0)a)b)c)d)e)f)f)e)g)g)g)h)i)j)k)l)l)m)n)o)o)p)q)q)r)s)%'%'t)u)2 ",
+"T'v)w)x)E'y)z)`'a$X#A)B)C)D)a&E)F)G)F)<'H)I)H)T=J)K)L)M)N)O)P)Q)R)S)a+T)U)V)G@W)I$X)Y)Z)`)8=k&{-]-&*&*y,z, !.!=&+!+!@!=&#!$!p'p'Y>H,x&=@-@q=%!a$&!*!=!#,M,|$0$p-p-3 3 3 0$0$3 3 3 0$0$0$Z$Z$-!x$3 3 0$0$0$0$0$x$L$;!>!,!X,}@$'/)8%",
+"-!v)'![@J&)!!!~!0$J#J@{!]!^!/!(!_!_!:!:!E)<!E)[![!G$}!.#|!1!2!3!4!5!6!7!8!9!0!u#a!b!c!d!e!]-]-&*/-z,z,h'.!f!=&#!g!g!#!#!h!i!q'Y>Z>G,x&=@-@j!T#a$k!l!m!n!o!}.3 0$0$0$0$0$0$1$0$0$0$0$0$0$A$A$A$y$0$1$1$1$0$0$0$h$.;s;p!q!B'}@G'+>r!",
+"-!v)s!V&t!u!v!w!x!y!z!A!B!d+P+C!D!D!E!F!G!F>a&F>F>$)$)H!I!J!K!L!M!N!O!X%P!Q!R!S!p T!U!V!W!]-i*/-y,z,X![)[)Y!Z!`!3)3) ~.~+~Y>t&@~H,G,`>x&x&#~$~%~&~*~=~-~;~>~,~'~)~!~~~~~~~~~{~{~{~]~]~{~^~/~(~)~{~{~]~_~]~_~_~/~R):~<~[~|@5@`,}~ =",
+"C$|~)#1~T*t!2~3~4~5~k'6~^-B!!-7~^!/!+)8~8~8~9~8~8~D)0~(!a~b~c~d~e~f~g~h~i~d+j~k~l~m~n~n>o~i*&*i*^-p~a=q~r~s~@,L,t~P-u~v~T-s&t&@~w~&@x&-@x~y~z~T@A~B~5-C~D~E~F~G~H~I~J~K~L~M~N~O~t P~Q~R~S~S~S~T~U~P~V~,!W~X~Y~s)>,Z~@+`~ { {.{Q#S'",
+"C$+{Z*&'@{}@#{${%{&{*{`!h'y,^-_$!-7~P+/!={+)+)={={/!C)^!P+P+-{;{f~f~>{,{'{'{){K-]-^-/-2;y,/-y,y,/-!{~{C,U>V>n'n'n'V>V>n'R-!>F,F,t&&@=@x~x~-@-@=@=@x&=@x~{{N,]{^{N,/{({_{:{<{,,[{}{-+|{A':,<,X,X,1{/+X,2{3{4{5{6{}@}@t).{7{8{8{9{-'",
+";'0{a{b{4@}@B'c{d{e{f{g{=&3;&*k&J-]!]!d+7~7~P+^!C)/!/!C)^!7~h{i{j{j{k{,{l{m{R+~-K-k&]-i*&*/-2;z,z,Y!C,m'm'V>E,W>V>D,D,V>E, ~n{i!q'Z>4-`>x&x&=@-@x~-@o{p{q{.$.$r{s{t{u{v{w{=+,'=+c{E*,'#{#{:,B'B'<,x{X,x{y{z{z{t!G'G'}@A{8{B{B{C{-'",
+"D{K#E{&'R*-#*#1{F{G{H{I{J{K{L{M{N{])]),=,=k~!-O{P{Q{]!R{S{T{U{V{W{X{U{Y{Z{`{/- ]&*Y+L-.]+]]'@]#]<)$]%]&]*]=]n'W>n'}--];]>]4,,]'])]!]u*~]~]{]x~{]]]~]^]/](]_]:]<][]t'''}]E*|]1]O,E'2]3]E*4]5]6]-+U,F'F'X,/+7]O'8]9]0]a]b]c]R&d]/)-'",
+"e]f]g]h]i]j]k]l]m]n]o]p]q]b)r]s]t]u]v]w]q#:]x]y]z]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]B@N~@.P]Q]r]R]S]T]U]V]W]W]X]Y]*+Z]s)`] ^.^+^@^#^))$^%^&^0)'+*^=^B&-^;^>^,^v]'^)^!^~^{^]^^^/^(^(>_^:^<^[^}^|^1^2^j):^3^4^5^6^7^8^9^>-};0^a^b^c^I$S'",
+"s;K#5+&'d^e^f^g^'$h^i^j^k^l^9*m^n^o^p^>-q^r^s^t^u^v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^p)M^N^O^P^Q^R^u'p^b)S^)$T^D&,>u'U^V^t]W^>-U^X^Y^Z^`^ /./+/@/M=#/$/%/&/v]K=*/=/-/;/>/,/'/)/0^!/~/{/]/^///(/_/:/</[/}/|/1/`#2/3/X^t;9*2++'4/5/S'",
+"%&U'6/7/Q*]#8/9/0/a/b/E$%+c/d/e/f/g/h/i/j/k/l/U~m/n/o/p/q/r/s/t/u/n)v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/y*K/L/j)M/N/O/P/Q/r#R/S/T/U/U^Y=1.V/W/p@h@X/Y/Z/`/ (.(e;+(@(#($(%(&(*(=(-(;(>(,('()(7##'!(~({(](^(/(((I$_(:(<([(}(|(1(D%2(M*},2 ",
+"D-3(a{4(7+(#Z-5(6(2@7(8({{9(0@0(B=a(b(c(d(A/e(f(g(h(I=8&j$i(j(k(l(m(q)n(o(p(e^)/q(r(9(s(t(u(v(w(x(_,V-y(z(~/A(B(C(D/D(E(F(G(H(I(J(K(L(M(N(2(t*&+O(2^P(l(Q(q)R(S(Q(T(U(V(W(X(Y(>-j@Z(`( _._+_@_#_$_%_&_*_=_-_;_2^Q(>_,_'_g]K'K')_!_",
+"u-~_{_]_^_/_(___:_C*C*<_[_}_|_1_2_3_4_5_6_7_6_8_6_9_U-q$0_a_b_9_x-c_d_e_W@f_#@g_h_i_j_k_@@U-l_J/l'm_j>x*x*n_o_p_q_r_s_j!t_u_.$v_w_w_/@[@<#x_[_y_z_[@x)A_B_%'6@C_D_E_T*|@F_R*G_E_H_H_L&I_C*C_J_Q*/_U*6{y{E'D*K_L_M_~#M_4@K&K&X,N_]>",
+"()O_P_Q_8@8@N*R_S_u!q=.$3,T_U_j>V_W_X_Y_@] ]Z_`_ :.:+:.:.:@:@:`_#:$:%:#]&:*:&:&:=:-:;:>:,:':U>):!:~:q&{:]:x*^:/:(:g=_:;]::c;~><:&@[:-@}:}:-@o{x~x~|:o{o{[_1:2:1:1:|_r_y_{{3:4:5:6:w'}]7:;,${t'8:8:t'9:J,0:a:E*b:c:A_A_E'C'd:e:f:O;",
+"O-g:`#5(5(};h:i:l^a!>_Q(j:k:l:m:p)n:.^o:a(k/x/k/k/p:.-.-.-k/q:q:r:w-w-p:p:x/N^s:s:s:.-.-t:u:v:w:x:x:y:x:z:u:@$A:B:8$'^f/C:o:a(@$o:D:E:l:F:E:G:H:H:D:H:I:J:S(S(K:K:K:K:K:K:L:L:L:M:M:L:N:O:P:P:Q:Q::^P:K:O:p)p)p)q)R:S:q)O:K:T:U:]>",
+"V:N-n$ =2 2 2 W:2 2 2 2 8%X:X: =8%A&A&A&A%A%A&A&A%Y:Y:Y:A&A&Y:A&A&A&A%A&A& =Z:Z:Z:Z:T$T$T$&! = = = =A&A&A&&!`:8%&!q@q@A& =A& =A%A&A&A&2 2 A&A&&!A&A&A&A&Y:W:W:2 W:Z:Y:Z:Z:A%Y:Y: = = = =&!&!q@q@A&A&A& = =A&A&]>]>]>]> =&!8%q@S'o;"};
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_AboutText.h"
+
+HC_AboutText::HC_AboutText(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "About Text")
+{
+ text = "HDSPConf (C) 2003 Thomas Charbonnel <thomas@@undata.org>\n\n"
+ "This Program is free software; you can redistribute it and/or modify\n"
+ "it under the terms of the GNU General Public License as published by\n"
+ "the Free Software Foundation; either version 2 of the License, or\n"
+ "(at your option) any later version.\n\n"
+ "This program is distributed in the hope that it will be useful,\n"
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+ "See the GNU General Public License for more details.\n\n"
+ "You should have received a copy of the GNU General Public License\n"
+ "along with this program; if not, write to the Free Software\n"
+ "Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n";
+}
+
+void HC_AboutText::draw()
+{
+ fl_color(FL_BLACK);
+ fl_font(FL_HELVETICA, 10);
+ fl_draw(text, x(), y(), w(), h(), FL_ALIGN_LEFT);
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_ABOUTTEXT_H
+#define HC_ABOUTTEXT_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+
+class HC_AboutText:public Fl_Widget
+{
+public:
+ HC_AboutText(int x, int y, int w, int h);
+ void draw();
+private:
+ char *text;
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_AutoSyncRef.h"
+
+extern char *freqs[7];
+extern char *ref[6];
+
+HC_AutoSyncRef::HC_AutoSyncRef(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "AutoSync Ref.")
+{
+ external_freq = 2;
+ external_ref = 3;
+ draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+ label("AutoSync Ref.");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_AutoSyncRef::draw()
+{
+ fl_color(FL_BACKGROUND_COLOR);
+ fl_rectf(x(), y(), w(), h());
+ draw_box(x(), y(), w(), h(), FL_WHITE);
+ fl_color(FL_BLACK);
+ fl_font(FL_HELVETICA, 10);
+ fl_draw("Input", x()+4, y(), w()/2, h()/2, FL_ALIGN_LEFT);
+ fl_draw(ref[external_ref], x()+w()/2-4, y(), w()/2, h()/2, FL_ALIGN_CENTER);
+ fl_draw("Freq.", x()+4, y()+h()/2, w()/2, h()/2, FL_ALIGN_LEFT);
+ fl_draw(freqs[external_freq], x()+w()/2-4, y()+h()/2, w()/2, h()/2, FL_ALIGN_CENTER);
+}
+
+void HC_AutoSyncRef::setFreq(int f)
+{
+ int freq;
+ switch (f) {
+ case 32000:
+ freq = 0;
+ break;
+ case 44100:
+ freq = 1;
+ break;
+ case 48000:
+ freq = 2;
+ break;
+ case 64000:
+ freq = 3;
+ break;
+ case 88200:
+ freq = 4;
+ break;
+ case 96000:
+ freq = 5;
+ break;
+ default:
+ freq = 6;
+ }
+ if (freq != external_freq) {
+ external_freq = freq;
+ redraw();
+ }
+}
+
+void HC_AutoSyncRef::setRef(unsigned char r)
+{
+ if (r == external_ref) return;
+ if (r > 6) external_ref = 6;
+ else external_ref = r;
+ redraw();
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_AUTOSYNCREF_H
+#define HC_AUTOSYNCREF_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_AutoSyncRef:public Fl_Widget
+{
+public:
+ HC_AutoSyncRef(int x, int y, int w, int h);
+ void draw();
+ int external_freq, external_ref;
+ void setFreq(int f);
+ void setRef(unsigned char r);
+private:
+ Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_CardPane.h"
+
+HC_CardPane::HC_CardPane(int alsa_idx, int idx, int t):Fl_Group(PANE_X, PANE_Y, PANE_W, PANE_H)
+{
+ alsa_index = alsa_idx;
+ index = idx;
+ type = t;
+ snprintf(name, 7, "Card %d", index+1);
+ label(name);
+ labelsize(10);
+
+ sync_ref = new HC_PrefSyncRef(x()+6, y()+20, 112, 120);
+ sync_check = new HC_SyncCheck(x()+6, y()+156, 112, 100);
+
+ spdif_in = new HC_SpdifIn(x()+124, y()+20, 112, 60);
+ spdif_out = new HC_SpdifOut(x()+124, y()+96, 112, 80);
+ spdif_freq = new HC_SpdifFreq(x()+124, y()+192, 112, 20);
+
+ clock_source = new HC_ClockSource(x()+242, y()+20, 112, 140);
+ autosync_ref = new HC_AutoSyncRef(x()+242, y()+176, 112, 40);
+ system_clock = new HC_SystemClock(x()+242, y()+232, 112, 40);
+
+ end();
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_CardPane_H
+#define HC_CardPane_H
+
+#include <stdio.h>
+#include <FL/Fl_Group.H>
+#include "HC_SyncCheck.h"
+#include "HC_SpdifFreq.h"
+#include "HC_AutoSyncRef.h"
+#include "HC_SystemClock.h"
+#include "HC_ClockSource.h"
+#include "HC_SpdifIn.h"
+#include "HC_SpdifOut.h"
+#include "HC_PrefSyncRef.h"
+#include "defines.h"
+
+class HC_SyncCheck;
+class HC_SpdifFreq;
+class HC_AutoSyncRef;
+class HC_SystemClock;
+class HC_ClockSource;
+class HC_SpdifIn;
+class HC_SpdifOut;
+class HC_PrefSyncRef;
+
+class HC_CardPane:public Fl_Group
+{
+public:
+ HC_CardPane(int alsa_idx, int idx, int t);
+ HC_SyncCheck *sync_check;
+ HC_SpdifFreq *spdif_freq;
+ HC_AutoSyncRef *autosync_ref;
+ HC_SystemClock *system_clock;
+ HC_ClockSource *clock_source;
+ HC_SpdifIn *spdif_in;
+ HC_SpdifOut *spdif_out;
+ HC_PrefSyncRef *sync_ref;
+ int index;
+ int alsa_index;
+ int type;
+private:
+ char name[7];
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_ClockSource.h"
+
+extern char *freqs[7];
+
+void clock_source_cb(Fl_Widget *w, void *arg)
+{
+ int src, err;
+ char card_name[6];
+ snd_ctl_elem_value_t *ctl;
+ snd_ctl_elem_id_t *id;
+ snd_ctl_t *handle;
+ HC_ClockSource *cs = (HC_ClockSource *)arg;
+ HC_CardPane *pane = (HC_CardPane *)(cs->parent());
+ Fl_Round_Button *source = (Fl_Round_Button *)w;
+ if (source == cs->autosync) {
+ src = 0;
+ } else if (source == cs->khz32) {
+ src = 1;
+ } else if (source == cs->khz44_1) {
+ src = 2;
+ } else if (source == cs->khz48) {
+ src = 3;
+ } else if (source == cs->khz64) {
+ src = 4;
+ } else if (source == cs->khz88_2) {
+ src = 5;
+ } else if (source == cs->khz96) {
+ src = 6;
+ }
+ snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+ snd_ctl_elem_value_alloca(&ctl);
+ snd_ctl_elem_id_alloca(&id);
+ snd_ctl_elem_id_set_name(id, "Sample Clock Source");
+ snd_ctl_elem_id_set_numid(id, 0);
+ snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM);
+ snd_ctl_elem_id_set_device(id, 0);
+ snd_ctl_elem_id_set_subdevice(id, 0);
+ snd_ctl_elem_id_set_index(id, 0);
+ snd_ctl_elem_value_set_id(ctl, id);
+ snd_ctl_elem_value_set_enumerated(ctl, 0, src);
+ if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+ fprintf(stderr, "Error opening ctl interface on card %s\n", card_name);
+ return;
+ }
+ if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+ fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name);
+ return;
+ }
+ snd_ctl_close(handle);
+}
+
+HC_ClockSource::HC_ClockSource(int x, int y, int w, int h):Fl_Group(x, y, w, h, "Sample Clock Source")
+{
+ int i = 0;
+ int v_step = (int)(h/7.0f);
+ box(FL_ENGRAVED_FRAME);
+ label("Sample Clock Source");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+ autosync = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "AutoSync");
+ autosync->callback(clock_source_cb, (void *)this);
+ khz32 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[0]);
+ khz32->callback(clock_source_cb, (void *)this);
+ khz44_1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[1]);
+ khz44_1->callback(clock_source_cb, (void *)this);
+ khz48 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[2]);
+ khz48->callback(clock_source_cb, (void *)this);
+ khz64 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[3]);
+ khz64->callback(clock_source_cb, (void *)this);
+ khz88_2 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[4]);
+ khz88_2->callback(clock_source_cb, (void *)this);
+ khz96 = new Fl_Round_Button(x+15, y+v_step*i, w-30, v_step, freqs[5]);
+ khz96->callback(clock_source_cb, (void *)this);
+ autosync->labelsize(10);
+ autosync->type(FL_RADIO_BUTTON);
+ khz32->labelsize(10);
+ khz32->type(FL_RADIO_BUTTON);
+ khz44_1->labelsize(10);
+ khz44_1->type(FL_RADIO_BUTTON);
+ khz48->labelsize(10);
+ khz48->type(FL_RADIO_BUTTON);
+ khz64->labelsize(10);
+ khz64->type(FL_RADIO_BUTTON);
+ khz88_2->labelsize(10);
+ khz88_2->type(FL_RADIO_BUTTON);
+ khz96->labelsize(10);
+ khz96->type(FL_RADIO_BUTTON);
+ end();
+}
+
+void HC_ClockSource::setSource(unsigned char s)
+{
+ if (s < children()) {
+ if (((Fl_Round_Button *)child(s))->value() != 1)
+ ((Fl_Round_Button *)child(s))->setonly();
+ }
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_CLOCKSOURCE_H
+#define HC_CLOCKSOURCE_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Round_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_ClockSource:public Fl_Group
+{
+public:
+ HC_ClockSource(int x, int y, int w, int h);
+ int source;
+ Fl_Round_Button *autosync;
+ Fl_Round_Button *khz32;
+ Fl_Round_Button *khz44_1;
+ Fl_Round_Button *khz48;
+ Fl_Round_Button *khz64;
+ Fl_Round_Button *khz88_2;
+ Fl_Round_Button *khz96;
+ void setSource(unsigned char s);
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_PrefSyncRef.h"
+
+void pref_sync_ref_cb(Fl_Widget *w, void *arg)
+{
+ int ref, err;
+ char card_name[6];
+ snd_ctl_elem_value_t *ctl;
+ snd_ctl_elem_id_t *id;
+ snd_ctl_t *handle;
+ HC_PrefSyncRef *psr = (HC_PrefSyncRef *)arg;
+ HC_CardPane *pane = (HC_CardPane *)(psr->parent());
+ Fl_Round_Button *source = (Fl_Round_Button *)w;
+ if (source == psr->word_clock) {
+ ref = 0;
+ } else if (source == psr->adat_sync) {
+ ref = 1;
+ } else if (source == psr->spdif) {
+ ref = 2;
+ } else if (source == psr->adat1) {
+ ref = 3;
+ } else if (source == psr->adat2) {
+ ref = 4;
+ } else if (source == psr->adat3) {
+ ref = 5;
+ }
+ snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+ snd_ctl_elem_value_alloca(&ctl);
+ snd_ctl_elem_id_alloca(&id);
+ snd_ctl_elem_id_set_name(id, "Preferred Sync Reference");
+ snd_ctl_elem_id_set_numid(id, 0);
+ snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_HWDEP);
+ snd_ctl_elem_id_set_device(id, 0);
+ snd_ctl_elem_id_set_subdevice(id, 0);
+ snd_ctl_elem_id_set_index(id, 0);
+ snd_ctl_elem_value_set_id(ctl, id);
+ snd_ctl_elem_value_set_enumerated(ctl, 0, ref);
+ if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+ fprintf(stderr, "Error opening ctl interface on card %s\n", card_name);
+ return;
+ }
+ if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+ fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name);
+ return;
+ }
+ snd_ctl_close(handle);
+}
+
+
+HC_PrefSyncRef::HC_PrefSyncRef(int x, int y, int w, int h):Fl_Group(x, y, w, h, "Pref. Sync Ref")
+{
+ int i = 0;
+ int v_step;
+ if (((HC_CardPane *)parent())->type == MULTIFACE) {
+ v_step = (int)(h/4.0f);
+ } else {
+ v_step = (int)(h/6.0f);
+ }
+ source = 0;
+ box(FL_ENGRAVED_FRAME);;
+ label("Pref. Sync Ref");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+ word_clock = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Word Clock");
+ word_clock->callback(pref_sync_ref_cb, (void *)this);
+ adat_sync = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT Sync");
+ adat_sync->callback(pref_sync_ref_cb, (void *)this);
+ spdif = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "SPDIF In");
+ spdif->callback(pref_sync_ref_cb, (void *)this);
+ adat1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1 In");
+ adat1->callback(pref_sync_ref_cb, (void *)this);
+ if (((HC_CardPane *)parent())->type != MULTIFACE) {
+ adat2 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT2 In");
+ adat2->labelsize(10);
+ adat2->type(FL_RADIO_BUTTON);
+ adat2->callback(pref_sync_ref_cb, (void *)this);
+ adat3 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT3 In");
+ adat3->labelsize(10);
+ adat3->type(FL_RADIO_BUTTON);
+ adat3->callback(pref_sync_ref_cb, (void *)this);
+ }
+ adat1->labelsize(10);
+ adat1->type(FL_RADIO_BUTTON);
+ spdif->labelsize(10);
+ spdif->type(FL_RADIO_BUTTON);
+ word_clock->labelsize(10);
+ word_clock->type(FL_RADIO_BUTTON);
+ adat_sync->labelsize(10);
+ adat_sync->type(FL_RADIO_BUTTON);
+ end();
+}
+
+void HC_PrefSyncRef::setRef(int r)
+{
+ if (r >= 0 && r < children()) {
+ if (((Fl_Round_Button *)child(r))->value() != 1)
+ ((Fl_Round_Button *)child(r))->setonly();
+ }
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_PREFSYNCREF_H
+#define HC_PREFSYNCREF_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Round_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_PrefSyncRef:public Fl_Group
+{
+public:
+ HC_PrefSyncRef(int x, int y, int w, int h);
+ int source;
+ Fl_Round_Button *adat1;
+ Fl_Round_Button *adat2;
+ Fl_Round_Button *adat3;
+ Fl_Round_Button *spdif;
+ Fl_Round_Button *word_clock;
+ Fl_Round_Button *adat_sync;
+ void setRef(int r);
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SpdifFreq.h"
+
+extern char *freqs[7];
+
+HC_SpdifFreq::HC_SpdifFreq(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "SPDIF Freq.")
+{
+ spdif_freq = 0;
+ draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+ label("SPDIF Freq.");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_SpdifFreq::draw()
+{
+ fl_color(FL_BACKGROUND_COLOR);
+ fl_rectf(x(), y(), w(), h());
+ draw_box(x(), y(), w(), h(), FL_WHITE);
+ fl_color(FL_BLACK);
+ fl_font(FL_HELVETICA, 10);
+ fl_draw(freqs[spdif_freq], x(), y(), w(), h(), FL_ALIGN_CENTER);
+}
+
+void HC_SpdifFreq::setFreq(int f)
+{
+ int freq;
+ switch (f) {
+ case 32000:
+ freq = 0;
+ break;
+ case 44100:
+ freq = 1;
+ break;
+ case 48000:
+ freq = 2;
+ break;
+ case 64000:
+ freq = 3;
+ break;
+ case 88200:
+ freq = 4;
+ break;
+ case 96000:
+ freq = 5;
+ break;
+ default:
+ freq = 6;
+ }
+ if (freq != spdif_freq) {
+ spdif_freq = freq;
+ redraw();
+ }
+}
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SPDIFFREQ_H
+#define HC_SPDIFFREQ_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SpdifFreq:public Fl_Widget
+{
+public:
+ HC_SpdifFreq(int x, int y, int w, int h);
+ void draw();
+ int spdif_freq;
+ void setFreq(int f);
+private:
+ Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SpdifIn.h"
+
+void spdif_in_cb(Fl_Widget *w, void *arg)
+{
+ int in, err;
+ char card_name[6];
+ snd_ctl_elem_value_t *ctl;
+ snd_ctl_elem_id_t *id;
+ snd_ctl_t *handle;
+ Fl_Round_Button *source = (Fl_Round_Button *)w;
+ HC_SpdifIn *si = (HC_SpdifIn *)arg;
+ HC_CardPane *pane = (HC_CardPane *)si->parent();
+ if (source == si->adat1) {
+ in = 0;
+ } else if (source == si->coaxial) {
+ in = 1;
+ } else if (source == si->internal) {
+ in = 2;
+ }
+ snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+ snd_ctl_elem_value_alloca(&ctl);
+ snd_ctl_elem_id_alloca(&id);
+ snd_ctl_elem_id_set_name(id, "IEC958 Input Connector");
+ snd_ctl_elem_id_set_numid(id, 0);
+ snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM);
+ snd_ctl_elem_id_set_device(id, 0);
+ snd_ctl_elem_id_set_subdevice(id, 0);
+ snd_ctl_elem_id_set_index(id, 0);
+ snd_ctl_elem_value_set_id(ctl, id);
+ snd_ctl_elem_value_set_enumerated(ctl, 0, in);
+ if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+ fprintf(stderr, "Error opening ctl interface on card %s\n", card_name);
+ return;
+ }
+ if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+ fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name);
+ return;
+ }
+ snd_ctl_close(handle);
+}
+
+HC_SpdifIn::HC_SpdifIn(int x, int y, int w, int h):Fl_Group(x, y, w, h, "SPDIF In")
+{
+ int i = 0;
+ int v_step = (int)(h/3.0f);
+ source = 0;
+ box(FL_ENGRAVED_FRAME);;
+ label("SPDIF In");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+ adat1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1");
+ coaxial = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Coaxial");
+ internal = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Internal");
+ adat1->labelsize(10);
+ adat1->type(FL_RADIO_BUTTON);
+ adat1->callback(spdif_in_cb, (void *)this);
+ coaxial->labelsize(10);
+ coaxial->type(FL_RADIO_BUTTON);
+ coaxial->callback(spdif_in_cb, (void *)this);
+ internal->labelsize(10);
+ internal->type(FL_RADIO_BUTTON);
+ internal->callback(spdif_in_cb, (void *)this);
+ end();
+}
+
+void HC_SpdifIn::setInput(unsigned char i)
+{
+ if (i < children()) {
+ if (((Fl_Round_Button *)child(i))->value() != 1)
+ ((Fl_Round_Button *)child(i))->setonly();
+ }
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SPDIFIN_H
+#define HC_SPDIFIN_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Round_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SpdifIn:public Fl_Group
+{
+public:
+ HC_SpdifIn(int x, int y, int w, int h);
+ int source;
+ Fl_Round_Button *adat1;
+ Fl_Round_Button *coaxial;
+ Fl_Round_Button *internal;
+ void setInput(unsigned char i);
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SpdifOut.h"
+
+static void setSpdifBit(char *ctl_name, int val, int card_index)
+{
+ int err;
+ char card_name[6];
+ snd_ctl_elem_value_t *ctl;
+ snd_ctl_elem_id_t *id;
+ snd_ctl_t *handle;
+ snprintf(card_name, 6, "hw:%i", card_index);
+ snd_ctl_elem_value_alloca(&ctl);
+ snd_ctl_elem_id_alloca(&id);
+ snd_ctl_elem_id_set_name(id, ctl_name);
+ snd_ctl_elem_id_set_numid(id, 0);
+ snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_HWDEP);
+ snd_ctl_elem_id_set_device(id, 0);
+ snd_ctl_elem_id_set_subdevice(id, 0);
+ snd_ctl_elem_id_set_index(id, 0);
+ snd_ctl_elem_value_set_id(ctl, id);
+ snd_ctl_elem_value_set_integer(ctl, 0, val);
+ if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+ fprintf(stderr, "Error opening ctl interface on card %s\n", card_name);
+ return;
+ }
+ if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+ fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name);
+ return;
+ }
+ snd_ctl_close(handle);
+}
+
+void spdif_on_adat_cb(Fl_Widget *w, void *arg)
+{
+ setSpdifBit("IEC958 Output also on ADAT1", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+void spdif_professional_cb(Fl_Widget *w, void *arg)
+{
+ setSpdifBit("IEC958 Professional Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+void spdif_emphasis_cb(Fl_Widget *w, void *arg)
+{
+ setSpdifBit("IEC958 Emphasis Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+void spdif_nonaudio_cb(Fl_Widget *w, void *arg)
+{
+ setSpdifBit("IEC958 Non-audio Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+HC_SpdifOut::HC_SpdifOut(int x, int y, int w, int h):Fl_Group(x, y, w, h, "SPDIF Out")
+{
+ int i = 0;
+ lock = 0;
+ int v_step = (int)(h/4.0f);
+ box(FL_ENGRAVED_FRAME);
+ label("SPDIF Out");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+ adat1 = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1");
+ professional = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Professional");
+ emphasis = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Emphasis");
+ non_audio = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Non-Audio");
+ adat1->labelsize(10);
+ adat1->callback(spdif_on_adat_cb, (void *)parent());
+ professional->labelsize(10);
+ professional->callback(spdif_professional_cb, (void *)parent());
+ emphasis->labelsize(10);
+ emphasis->callback(spdif_emphasis_cb, (void *)parent());
+ non_audio->labelsize(10);
+ non_audio->callback(spdif_nonaudio_cb, (void *)parent());
+ end();
+}
+
+void HC_SpdifOut::setOut(unsigned char val)
+{
+ if (val != adat1->value()) {
+ adat1->value(val);
+ }
+}
+
+void HC_SpdifOut::setProfessional(unsigned char val)
+{
+
+ if (val != professional->value()) {
+ professional->value(val);
+ }
+}
+
+void HC_SpdifOut::setEmphasis(unsigned char val)
+{
+ if (val != emphasis->value()) {
+ emphasis->value(val);
+ }
+}
+
+void HC_SpdifOut::setNonaudio(unsigned char val)
+{
+ if (val != non_audio->value()) {
+ non_audio->value(val);
+ }
+}
+
+int HC_SpdifOut::handle(int e)
+{
+ switch (e) {
+ case FL_PUSH:
+ lock = 1;
+ break;
+ case FL_RELEASE:
+ lock = 0;
+ break;
+ default:
+ return Fl_Group::handle(e);
+ }
+ return Fl_Group::handle(e);
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SPDIFOUT_H
+#define HC_SPDIFOUT_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Check_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SpdifOut:public Fl_Group
+{
+public:
+ HC_SpdifOut(int x, int y, int w, int h);
+ int source;
+ Fl_Check_Button *adat1;
+ Fl_Check_Button *professional;
+ Fl_Check_Button *emphasis;
+ Fl_Check_Button *non_audio;
+ void setOut(unsigned char val);
+ void setProfessional(unsigned char val);
+ void setEmphasis(unsigned char val);
+ void setNonaudio(unsigned char val);
+ int handle(int e);
+ int lock;
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SyncCheck.h"
+
+extern char *lock_status[3];
+
+HC_SyncCheck::HC_SyncCheck(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "SyncCheck")
+{
+ adat1_lock_status = -1;
+ adat2_lock_status = -1;
+ adat3_lock_status = -1;
+ wordclock_lock_status = -1;
+ adatsync_lock_status = -1;
+ spdif_lock_status = -1;
+ if (((HC_CardPane *)parent())->type == MULTIFACE) {
+ v_step = (int)(h/4.0f);
+ } else {
+ v_step = (int)(h/6.0f);
+ }
+ h_step = (int)(w/2.0f);
+ draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+ label("SyncCheck");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_SyncCheck::draw()
+{
+ int v_pos = v_step;
+ int h_pos = 4;
+ int i = 0;
+ fl_color(FL_BACKGROUND_COLOR);
+ fl_rectf(x(), y(), w(), h());
+ draw_box(x(), y(), w(), h(), FL_WHITE);
+ fl_color(FL_BLACK);
+ fl_font(FL_HELVETICA, 10);
+ fl_draw("ADAT1 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+ fl_draw(lock_status[adat1_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+ if (((HC_CardPane *)parent())->type != MULTIFACE) {
+ fl_draw("ADAT2 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+ fl_draw(lock_status[adat2_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+ fl_draw("ADAT3 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+ fl_draw(lock_status[adat3_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+ }
+ fl_draw("SPDIF In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+ fl_draw(lock_status[spdif_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+ fl_draw("WordClock", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+ fl_draw(lock_status[wordclock_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+ fl_draw("ADAT Sync", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+ fl_draw(lock_status[adatsync_lock_status], x()+h_pos+h_step, y()+v_pos*i, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+}
+
+void HC_SyncCheck::setSpdifStatus(unsigned char s)
+{
+ if (s == spdif_lock_status) return;
+ if (s > 2) spdif_lock_status = 2;
+ else spdif_lock_status = s;
+ redraw();
+ return;
+}
+
+void HC_SyncCheck::setWCStatus(unsigned char s)
+{
+ if (s == wordclock_lock_status) return;
+ if (s > 2) wordclock_lock_status = 2;
+ else wordclock_lock_status = s;
+ redraw();
+ return;
+}
+
+void HC_SyncCheck::setAdat1Status(unsigned char s)
+{
+ if (s == adat1_lock_status) return;
+ if (s > 2) adat1_lock_status = 2;
+ else adat1_lock_status = s;
+ redraw();
+ return;
+}
+
+void HC_SyncCheck::setAdat2Status(unsigned char s)
+{
+ if (s == adat2_lock_status) return;
+ if (s > 2) adat2_lock_status = 2;
+ else adat2_lock_status = s;
+ redraw();
+ return;
+}
+
+void HC_SyncCheck::setAdat3Status(unsigned char s)
+{
+ if (s == adat3_lock_status) return;
+ if (s > 2) adat3_lock_status = 2;
+ else adat3_lock_status = s;
+ redraw();
+ return;
+}
+
+void HC_SyncCheck::setAdatSyncStatus(unsigned char s)
+{
+ if (s == adatsync_lock_status) return;
+ if (s > 2) adatsync_lock_status = 2;
+ else adatsync_lock_status = s;
+ redraw();
+ return;
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SYNCCHECK_H
+#define HC_SYNCCHECK_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+#define NO_LOCK 0
+#define LOCK 1
+#define SYNC 2
+
+class HC_CardPane;
+
+class HC_SyncCheck:public Fl_Widget
+{
+public:
+ HC_SyncCheck(int x, int y, int w, int h);
+ void draw();
+ int adat1_lock_status;
+ int adat2_lock_status;
+ int adat3_lock_status;
+ int wordclock_lock_status;
+ int adatsync_lock_status;
+ int spdif_lock_status;
+ void setSpdifStatus(unsigned char s);
+ void setAdat1Status(unsigned char s);
+ void setAdat2Status(unsigned char s);
+ void setAdat3Status(unsigned char s);
+ void setAdatSyncStatus(unsigned char s);
+ void setWCStatus(unsigned char s);
+private:
+ int v_step, h_step;
+ Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SystemClock.h"
+
+extern char *freqs[7];
+
+HC_SystemClock::HC_SystemClock(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "System Clock")
+{
+ system_freq = 6;
+ system_mode = 0;
+ draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+ label("System Clock");
+ labelsize(10);
+ align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_SystemClock::draw()
+{
+ fl_color(FL_BACKGROUND_COLOR);
+ fl_rectf(x(), y(), w(), h());
+ draw_box(x(), y(), w(), h(), FL_WHITE);
+ fl_color(FL_BLACK);
+ fl_font(FL_HELVETICA, 10);
+ fl_draw("Mode", x()+4, y(), w()/2, h()/2, FL_ALIGN_LEFT);
+ fl_draw(system_mode ? "Slave" : "Master", x()+w()/2-4, y(), w()/2, h()/2, FL_ALIGN_CENTER);
+ fl_draw("Freq.", x()+4, y()+h()/2, w()/2, h()/2, FL_ALIGN_LEFT);
+ fl_draw(freqs[system_freq], x()+w()/2-4, y()+h()/2, w()/2, h()/2, FL_ALIGN_CENTER);
+}
+
+void HC_SystemClock::setMode(unsigned char m)
+{
+ if (m != system_mode) {
+ if (m) system_mode = 1;
+ else system_mode = 0;
+ redraw();
+ }
+}
+
+void HC_SystemClock::setFreq(int f)
+{
+ int freq;
+ switch(f) {
+ case 32000:
+ freq = 0;
+ break;
+ case 44100:
+ freq = 1;
+ break;
+ case 48000:
+ freq = 2;
+ break;
+ case 64000:
+ freq = 3;
+ break;
+ case 88200:
+ freq = 4;
+ break;
+ case 96000:
+ freq = 5;
+ break;
+ default:
+ freq = 6;
+ }
+ if (freq != system_freq) {
+ system_freq = freq;
+ redraw();
+ }
+}
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SYSTEMCLOCK_H
+#define HC_SYSTEMCLOCK_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SystemClock:public Fl_Widget
+{
+public:
+ HC_SystemClock(int x, int y, int w, int h);
+ void draw();
+ int system_freq;
+ int system_mode;
+ void setMode(unsigned char m);
+ void setFreq(int f);
+private:
+ Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_XpmRenderer.h"
+
+HC_XpmRenderer::HC_XpmRenderer(int x, int y, int w, int h, char * const *xpm):Fl_Widget(x, y, w, h)
+{
+ pixmap = xpm;
+}
+
+void HC_XpmRenderer::draw()
+{
+ fl_draw_pixmap(pixmap, x(), y());
+}
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_XPMRENDERER_H
+#define HC_XPMRENDERER_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+
+class HC_XpmRenderer:public Fl_Widget
+{
+public:
+ HC_XpmRenderer(int x, int y, int w, int h, char * const *xpm);
+ void draw();
+private:
+ char * const *pixmap;
+};
+
+#endif
+
--- /dev/null
+bin_PROGRAMS = hdspconf
+hdspconf_SOURCES = \
+ hdspconf.cxx \
+ defines.h \
+ HC_CardPane.cxx \
+ HC_CardPane.h \
+ HC_SyncCheck.cxx \
+ HC_SyncCheck.h \
+ HC_SpdifFreq.cxx \
+ HC_SpdifFreq.h \
+ HC_AutoSyncRef.cxx \
+ HC_AutoSyncRef.h \
+ HC_SystemClock.cxx \
+ HC_SystemClock.h \
+ HC_ClockSource.cxx \
+ HC_ClockSource.h \
+ HC_SpdifIn.cxx \
+ HC_SpdifIn.h \
+ HC_SpdifOut.cxx \
+ HC_SpdifOut.h \
+ HC_PrefSyncRef.cxx \
+ HC_PrefSyncRef.h \
+ HC_XpmRenderer.cxx \
+ HC_XpmRenderer.h \
+ HC_AboutText.cxx \
+ HC_AboutText.h
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef DEFINES_H
+#define DEFINES_H
+
+#define MULTIFACE 0
+#define DIGIFACE 1
+#define HDSP9652 2
+
+#define WINDOW_WIDTH 380
+#define WINDOW_HEIGHT 330
+
+#define TABS_X 10
+#define TABS_Y 10
+#define TABS_W 360
+#define TABS_H 310
+
+#define PANE_X 10
+#define PANE_Y 30
+#define PANE_H 290
+#define PANE_W 360
+
+#endif
+
--- /dev/null
+/*
+ * HDSPConf
+ *
+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <alsa/asoundlib.h>
+#include <sound/hdsp.h>
+#include <FL/Fl.H>
+#include <FL/Fl_Window.H>
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Tabs.H>
+#include "HC_CardPane.h"
+#include "HC_XpmRenderer.h"
+#include "HC_AboutText.h"
+#include "defines.h"
+
+#include "../pixmaps/rme.xpm"
+#include "../pixmaps/alsalogo.xpm"
+#include "../pixmaps/lad_banner.xpm"
+
+class HC_CardPane;
+class HC_XpmRenderer;
+class HC_AboutText;
+
+char *freqs[7] = {
+ "32.0 kHz",
+ "44.1 kHz",
+ "48.0 kHz",
+ "64.0 kHz",
+ "88.2 kHz",
+ "96.0 kHz",
+ "-----"
+};
+
+char *ref[7] = {
+ "Word Clock",
+ "ADAT Sync",
+ "SPDIF",
+ "-----",
+ "ADAT1",
+ "ADAT2",
+ "ADAT3"
+};
+
+char *lock_status[3] = {
+ "No Lock",
+ "Lock",
+ "Sync"
+};
+
+static void refresh_cb(void *arg)
+{
+ Fl_Tabs *tabs = (Fl_Tabs *)arg;
+ int err;
+ snd_hwdep_t *hw;
+ char card_name[6];
+ hdsp_config_info_t config_info;
+
+ for (int i = 0; i < tabs->children()-1 ; ++i) {
+ HC_CardPane *pane = (HC_CardPane *)tabs->child(i);
+ if (!pane->visible()) {
+ break;
+ }
+ snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+
+ if ((err = snd_hwdep_open(&hw, card_name, SND_HWDEP_OPEN_READ)) != 0) {
+ fprintf(stderr, "Error opening hwdep device on card %s.\n", card_name);
+ break;
+ }
+
+ if ((err = snd_hwdep_ioctl(hw, SNDRV_HDSP_IOCTL_GET_CONFIG_INFO, (void *)&config_info)) < 0) {
+ fprintf(stderr, "Hwdep ioctl error on card %s.\n", card_name);
+ snd_hwdep_close(hw);
+ break;
+ }
+
+ snd_hwdep_close(hw);
+
+ pane->sync_ref->setRef(config_info.pref_sync_ref);
+ pane->spdif_freq->setFreq(config_info.spdif_sample_rate);
+ pane->sync_check->setAdat1Status(config_info.adat_sync_check[0]);
+ pane->sync_check->setSpdifStatus(config_info.spdif_sync_check);
+ pane->sync_check->setWCStatus(config_info.wordclock_sync_check);
+ pane->sync_check->setAdatSyncStatus(config_info.adatsync_sync_check);
+ if (pane->type != MULTIFACE) {
+ pane->sync_check->setAdat2Status(config_info.adat_sync_check[1]);
+ pane->sync_check->setAdat3Status(config_info.adat_sync_check[2]);
+ }
+ pane->spdif_in->setInput(config_info.spdif_in);
+ if (pane->spdif_out->lock == 0) {
+ pane->spdif_out->setOut(config_info.spdif_out);
+ pane->spdif_out->setProfessional(config_info.spdif_professional);
+ pane->spdif_out->setEmphasis(config_info.spdif_emphasis);
+ pane->spdif_out->setNonaudio(config_info.spdif_nonaudio);
+ }
+ pane->clock_source->setSource(config_info.clock_source);
+ pane->autosync_ref->setRef(config_info.autosync_ref);
+ pane->autosync_ref->setFreq(config_info.autosync_sample_rate);
+ pane->system_clock->setMode(config_info.system_clock_mode);
+ pane->system_clock->setFreq(config_info.system_sample_rate);
+ }
+
+ Fl::add_timeout(0.3, refresh_cb, arg);
+ return;
+}
+
+int main(int argc, char **argv)
+{
+ Fl_Window *window;
+ Fl_Tabs *tabs;
+ HC_CardPane *card_panes[4];
+ HC_XpmRenderer *lad_banner;
+ HC_XpmRenderer *alsa_logo;
+ HC_XpmRenderer *rme_logo;
+ HC_AboutText *about_text;
+ Fl_Group *about_pane;
+ char **name;
+ int card;
+ int hdsp_cards[4];
+ int alsa_index[4];
+ snd_ctl_t *handle;
+ snd_ctl_card_info_t *info;
+ snd_pcm_info_t *pcminfo;
+ int cards = 0;
+
+ snd_ctl_card_info_alloca(&info);
+ snd_pcm_info_alloca(&pcminfo);
+ card = -1;
+ printf("HDSPConf %s\n", VERSION);
+ printf("Looking for HDSP cards :\n");
+ while (snd_card_next(&card) >= 0 && cards < 4) {
+ if (card < 0) {
+ break;
+ } else {
+ snd_card_get_longname(card, name);
+ printf("Card %d : %s\n", card, *name);
+ if (!strncmp(*name, "RME Hammerfall DSP + Multiface", 30)) {
+ printf("Multiface found !\n");
+ hdsp_cards[cards] = MULTIFACE;
+ alsa_index[cards] = card;
+ cards++;
+ } else if (!strncmp(*name, "RME Hammerfall DSP + Digiface", 29)) {
+ printf("Digiface found !\n");
+ hdsp_cards[cards] = DIGIFACE;
+ alsa_index[cards] = card;
+ cards++;
+ } else if (!strncmp(*name, "RME HDSP 9652", 13)) {
+ printf("HDSP 9652 found !\n");
+ hdsp_cards[cards] = HDSP9652;
+ alsa_index[cards] = card;
+ cards++;
+ }
+ }
+ }
+ if (!cards) {
+ printf("No Hammerfall DSP card found.\n");
+ exit(1);
+ }
+ printf("%d Hammerfall DSP %s found.\n", cards, (cards > 1) ? "cards" : "card");
+
+ window = new Fl_Window(WINDOW_WIDTH, WINDOW_HEIGHT, "Hammerfall DSP Alsa Settings");
+ tabs = new Fl_Tabs(TABS_X, TABS_Y, TABS_W, TABS_H);
+ window->end();
+ for (int i = 0; i < cards; ++i) {
+ card_panes[i] = new HC_CardPane(alsa_index[i], i, hdsp_cards[i]);
+ tabs->add((Fl_Group *)card_panes[i]);
+ }
+ about_pane = new Fl_Group(10, 30, 360, 360, "About");
+ about_pane->labelsize(10);
+ about_text = new HC_AboutText(20, 40, 340, 210);
+ rme_logo = new HC_XpmRenderer(20, 263, 113, 35, rme_xpm);
+ alsa_logo = new HC_XpmRenderer(170, 255, 50, 50, alsalogo_xpm);
+ lad_banner = new HC_XpmRenderer(245, 260, 113, 39, lad_banner_xpm);
+ about_pane->end();
+ tabs->add(about_pane);
+ refresh_cb((void *)tabs);
+ window->show(argc, argv);
+ return Fl::run();
+}
+